functions should be able to throw nonfatal warnings just like a compiler does
563