author defines a syntax where literals are given by ```haskell data Lit = StrLit String | IntLit Int | Ident String deriving (Show, Eq)