Type system: Types, Pattern matching and Values (WIP)