begin using type constructors in lexer