definition module WhileLexer from StdOverloaded import class == from GenEq import generic gEq import WhileCommon :: Token = SkipToken | IfToken | ThenToken | ElseToken | WhileToken | DoToken | CompToken | AssToken | EqToken | NeToken | LtToken | LeToken | GtToken | GeToken | OrToken | AndToken | NotToken | AddToken | SubToken | MulToken | DivToken | VarToken Var | LiteralToken Int | BoolToken Bool | ParenOpen | ParenClose derive gEq Token instance == Token lex :: [Char] -> Either Error [Token]