WIP: parse function definitions
parse function definitions

also: add types to represent types
fix issue causing double nested block for function definitions
whitespace changes