Parser now allows options on data types and functions, and elaborator processes options so we can set up interfaces