= IdentToken String // Identifier
| NumberToken Int // Integer
| CharToken Char // Character literal
+ | StringToken [Char]// String literal
//Keyword tokens
| VarToken // var keyword
| ReturnToken // return keyword
| IntTypeToken // Int keyword
| CharTypeToken // Char keyword
| BoolTypeToken // Bool keyword
+ | LetToken // Let keyword
//Two character tokens
| DoubleColonToken // ::
| NotEqualToken // !=
| LesserToken // <
| BiggerToken // >
| ExclamationToken // !
+ | BackslashToken // \
:: LexerOutput :== Either Error [Token]