more consistent, nicer syntax for type annotations and functions