Add support to user defined types
Add checkable type definition
Update function signatures
instrument function expressions