Define abstract syntax for types