Add type inheritance
Add dispatch function
Add enum definition syntax
Debug ambiguity problem