    module UU.Scanner.Token where

    import UU.Scanner.GenToken(GenToken(..))
    import UU.Scanner.Position(Pos)

    type Token = GenToken String EnumValToken String

    data EnumValToken
      = TkVarid
      | TkConid
      | TkString
      | TkChar
      | TkInteger8
      | TkInteger10
      | TkInteger16
      | TkFraction
      | TkTextnm
      | TkTextln
      | TkOp
      | TkConOp
      | TkError
      deriving (EnumValToken -> EnumValToken -> Bool
    (EnumValToken -> EnumValToken -> Bool)
    -> (EnumValToken -> EnumValToken -> Bool) -> Eq EnumValToken
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: EnumValToken -> EnumValToken -> Bool
    == :: EnumValToken -> EnumValToken -> Bool
    $c/= :: EnumValToken -> EnumValToken -> Bool
    /= :: EnumValToken -> EnumValToken -> Bool
    Eq, Eq EnumValToken
    Eq EnumValToken =>
    (EnumValToken -> EnumValToken -> Ordering)
    -> (EnumValToken -> EnumValToken -> Bool)
    -> (EnumValToken -> EnumValToken -> Bool)
    -> (EnumValToken -> EnumValToken -> Bool)
    -> (EnumValToken -> EnumValToken -> Bool)
    -> (EnumValToken -> EnumValToken -> EnumValToken)
    -> (EnumValToken -> EnumValToken -> EnumValToken)
    -> Ord EnumValToken
    EnumValToken -> EnumValToken -> Bool
    EnumValToken -> EnumValToken -> Ordering
    EnumValToken -> EnumValToken -> EnumValToken
    forall a.
    Eq a =>
    (a -> a -> Ordering)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> a)
    -> (a -> a -> a)
    -> Ord a
    $ccompare :: EnumValToken -> EnumValToken -> Ordering
    compare :: EnumValToken -> EnumValToken -> Ordering
    $c< :: EnumValToken -> EnumValToken -> Bool
    < :: EnumValToken -> EnumValToken -> Bool
    $c<= :: EnumValToken -> EnumValToken -> Bool
    <= :: EnumValToken -> EnumValToken -> Bool
    $c> :: EnumValToken -> EnumValToken -> Bool
    > :: EnumValToken -> EnumValToken -> Bool
    $c>= :: EnumValToken -> EnumValToken -> Bool
    >= :: EnumValToken -> EnumValToken -> Bool
    $cmax :: EnumValToken -> EnumValToken -> EnumValToken
    max :: EnumValToken -> EnumValToken -> EnumValToken
    $cmin :: EnumValToken -> EnumValToken -> EnumValToken
    min :: EnumValToken -> EnumValToken -> EnumValToken
    Ord)

    reserved                :: String -> Pos -> Token
    reserved :: String -> Pos -> Token
    reserved                =  String -> Pos -> Token
    forall key tp val. key -> Pos -> GenToken key tp val
    Reserved

    valueToken              :: EnumValToken -> String -> Pos -> Token
    valueToken :: EnumValToken -> String -> Pos -> Token
    valueToken              =  EnumValToken -> String -> Pos -> Token
    forall key tp val. tp -> val -> Pos -> GenToken key tp val
    ValToken

    errToken                :: String -> Pos -> Token
    errToken :: String -> Pos -> Token
    errToken                =  EnumValToken -> String -> Pos -> Token
    valueToken EnumValToken
    TkError