Declares all methods as throwing Exception.
Adds passing of functions as arguments.
Prioritises user-defined functions. Needs scoping to make this proper.
Cleanups fun call spec.