Type checker - work in progress
erasure semantics + param checks