module SyntaxTrees.Haskell.Common where newtype Var = Var String deriving (Var -> Var -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Var -> Var -> Bool $c/= :: Var -> Var -> Bool == :: Var -> Var -> Bool $c== :: Var -> Var -> Bool Eq, Int -> Var -> ShowS [Var] -> ShowS Var -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Var] -> ShowS $cshowList :: [Var] -> ShowS show :: Var -> String $cshow :: Var -> String showsPrec :: Int -> Var -> ShowS $cshowsPrec :: Int -> Var -> ShowS Show) newtype Ctor = Ctor String deriving (Ctor -> Ctor -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Ctor -> Ctor -> Bool $c/= :: Ctor -> Ctor -> Bool == :: Ctor -> Ctor -> Bool $c== :: Ctor -> Ctor -> Bool Eq, Int -> Ctor -> ShowS [Ctor] -> ShowS Ctor -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Ctor] -> ShowS $cshowList :: [Ctor] -> ShowS show :: Ctor -> String $cshow :: Ctor -> String showsPrec :: Int -> Ctor -> ShowS $cshowsPrec :: Int -> Ctor -> ShowS Show) newtype VarOp = VarOp String deriving (VarOp -> VarOp -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: VarOp -> VarOp -> Bool $c/= :: VarOp -> VarOp -> Bool == :: VarOp -> VarOp -> Bool $c== :: VarOp -> VarOp -> Bool Eq, Int -> VarOp -> ShowS [VarOp] -> ShowS VarOp -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [VarOp] -> ShowS $cshowList :: [VarOp] -> ShowS show :: VarOp -> String $cshow :: VarOp -> String showsPrec :: Int -> VarOp -> ShowS $cshowsPrec :: Int -> VarOp -> ShowS Show) newtype CtorOp = CtorOp String deriving (CtorOp -> CtorOp -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CtorOp -> CtorOp -> Bool $c/= :: CtorOp -> CtorOp -> Bool == :: CtorOp -> CtorOp -> Bool $c== :: CtorOp -> CtorOp -> Bool Eq, Int -> CtorOp -> ShowS [CtorOp] -> ShowS CtorOp -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CtorOp] -> ShowS $cshowList :: [CtorOp] -> ShowS show :: CtorOp -> String $cshow :: CtorOp -> String showsPrec :: Int -> CtorOp -> ShowS $cshowsPrec :: Int -> CtorOp -> ShowS Show) newtype Class = Class String deriving (Class -> Class -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Class -> Class -> Bool $c/= :: Class -> Class -> Bool == :: Class -> Class -> Bool $c== :: Class -> Class -> Bool Eq, Int -> Class -> ShowS [Class] -> ShowS Class -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Class] -> ShowS $cshowList :: [Class] -> ShowS show :: Class -> String $cshow :: Class -> String showsPrec :: Int -> Class -> ShowS $cshowsPrec :: Int -> Class -> ShowS Show) newtype Module = Module [String] deriving (Module -> Module -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Module -> Module -> Bool $c/= :: Module -> Module -> Bool == :: Module -> Module -> Bool $c== :: Module -> Module -> Bool Eq, Int -> Module -> ShowS [Module] -> ShowS Module -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Module] -> ShowS $cshowList :: [Module] -> ShowS show :: Module -> String $cshow :: Module -> String showsPrec :: Int -> Module -> ShowS $cshowsPrec :: Int -> Module -> ShowS Show) data Literal = UnitLit | BoolLit Bool | IntLit String | FloatLit String | CharLit Char | StringLit String deriving (Literal -> Literal -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Literal -> Literal -> Bool $c/= :: Literal -> Literal -> Bool == :: Literal -> Literal -> Bool $c== :: Literal -> Literal -> Bool Eq, Int -> Literal -> ShowS [Literal] -> ShowS Literal -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Literal] -> ShowS $cshowList :: [Literal] -> ShowS show :: Literal -> String $cshow :: Literal -> String showsPrec :: Int -> Literal -> ShowS $cshowsPrec :: Int -> Literal -> ShowS Show) data QVar = QVar (Maybe Module) Var deriving (QVar -> QVar -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: QVar -> QVar -> Bool $c/= :: QVar -> QVar -> Bool == :: QVar -> QVar -> Bool $c== :: QVar -> QVar -> Bool Eq, Int -> QVar -> ShowS [QVar] -> ShowS QVar -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [QVar] -> ShowS $cshowList :: [QVar] -> ShowS show :: QVar -> String $cshow :: QVar -> String showsPrec :: Int -> QVar -> ShowS $cshowsPrec :: Int -> QVar -> ShowS Show) data QCtor = QCtor (Maybe Module) Ctor deriving (QCtor -> QCtor -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: QCtor -> QCtor -> Bool $c/= :: QCtor -> QCtor -> Bool == :: QCtor -> QCtor -> Bool $c== :: QCtor -> QCtor -> Bool Eq, Int -> QCtor -> ShowS [QCtor] -> ShowS QCtor -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [QCtor] -> ShowS $cshowList :: [QCtor] -> ShowS show :: QCtor -> String $cshow :: QCtor -> String showsPrec :: Int -> QCtor -> ShowS $cshowsPrec :: Int -> QCtor -> ShowS Show) data QVarOp = QVarOp (Maybe Module) VarOp deriving (QVarOp -> QVarOp -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: QVarOp -> QVarOp -> Bool $c/= :: QVarOp -> QVarOp -> Bool == :: QVarOp -> QVarOp -> Bool $c== :: QVarOp -> QVarOp -> Bool Eq, Int -> QVarOp -> ShowS [QVarOp] -> ShowS QVarOp -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [QVarOp] -> ShowS $cshowList :: [QVarOp] -> ShowS show :: QVarOp -> String $cshow :: QVarOp -> String showsPrec :: Int -> QVarOp -> ShowS $cshowsPrec :: Int -> QVarOp -> ShowS Show) data QCtorOp = QCtorOp (Maybe Module) CtorOp deriving (QCtorOp -> QCtorOp -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: QCtorOp -> QCtorOp -> Bool $c/= :: QCtorOp -> QCtorOp -> Bool == :: QCtorOp -> QCtorOp -> Bool $c== :: QCtorOp -> QCtorOp -> Bool Eq, Int -> QCtorOp -> ShowS [QCtorOp] -> ShowS QCtorOp -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [QCtorOp] -> ShowS $cshowList :: [QCtorOp] -> ShowS show :: QCtorOp -> String $cshow :: QCtorOp -> String showsPrec :: Int -> QCtorOp -> ShowS $cshowsPrec :: Int -> QCtorOp -> ShowS Show) data QClass = QClass (Maybe Module) Class deriving (QClass -> QClass -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: QClass -> QClass -> Bool $c/= :: QClass -> QClass -> Bool == :: QClass -> QClass -> Bool $c== :: QClass -> QClass -> Bool Eq, Int -> QClass -> ShowS [QClass] -> ShowS QClass -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [QClass] -> ShowS $cshowList :: [QClass] -> ShowS show :: QClass -> String $cshow :: QClass -> String showsPrec :: Int -> QClass -> ShowS $cshowsPrec :: Int -> QClass -> ShowS Show)