First additions to support function types
Further clean up
More work on adding the last syntax constructs, next up is a major split up and refactor of the monolithic parser