Carry a function’s type with the definition
Remove duplicate definitions of ArgumentList
Add basic support for function parameters
Terminating instructions must match the function’s return type