module KnownDeclarations ( knownDeclarations , arbitraryButFixedTypes , standardHaskellDeclarations ) where import Language.Haskell.FreeTheorems.BasicSyntax import Language.Haskell.FreeTheorems.ValidSyntax {- All known declarations in parsed form. -} knownDeclarations :: [ValidDeclaration] knownDeclarations = arbitraryButFixedTypes ++ standardHaskellDeclarations arbitraryButFixedTypes = let arbitraryTypeNumber n = dataDecl name [simpleCons name] where name = ("T"++show n) in map arbitraryTypeNumber [0..9] standardHaskellDeclarations = [ValidDeclaration {rawDeclaration = DataDecl (Data {dataName = Ident {unpackIdent = "Bool"}, dataVars = [], dataCons = [DataCon {dataConName = Ident {unpackIdent = "False"}, dataConTypes = []},DataCon {dataConName = Ident {unpackIdent = "True"}, dataConTypes = []}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(&&)"}, signatureType = TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(||)"}, signatureType = TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "not"}, signatureType = TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "otherwise"}, signatureType = TypeCon (Con (Ident {unpackIdent = "Bool"})) []}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = DataDecl (Data {dataName = Ident {unpackIdent = "Maybe"}, dataVars = [TV (Ident {unpackIdent = "a"})], dataCons = [DataCon {dataConName = Ident {unpackIdent = "Nothing"}, dataConTypes = []},DataCon {dataConName = Ident {unpackIdent = "Just"}, dataConTypes = [Unbanged {withoutBang = TypeVar (TV (Ident {unpackIdent = "a"}))}]}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "maybe"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))) (TypeFun (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "b"})))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = DataDecl (Data {dataName = Ident {unpackIdent = "Either"}, dataVars = [TV (Ident {unpackIdent = "a"}),TV (Ident {unpackIdent = "b"})], dataCons = [DataCon {dataConName = Ident {unpackIdent = "Left"}, dataConTypes = [Unbanged {withoutBang = TypeVar (TV (Ident {unpackIdent = "a"}))}]},DataCon {dataConName = Ident {unpackIdent = "Right"}, dataConTypes = [Unbanged {withoutBang = TypeVar (TV (Ident {unpackIdent = "b"}))}]}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "either"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "c"})))) (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "c"})))) (TypeFun (TypeCon (Con (Ident {unpackIdent = "Either"})) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "c"}))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = DataDecl (Data {dataName = Ident {unpackIdent = "Ordering"}, dataVars = [], dataCons = [DataCon {dataConName = Ident {unpackIdent = "LT"}, dataConTypes = []},DataCon {dataConName = Ident {unpackIdent = "EQ"}, dataConTypes = []},DataCon {dataConName = Ident {unpackIdent = "GT"}, dataConTypes = []}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeDecl (Type {typeName = Ident {unpackIdent = "String"}, typeVars = [], typeRhs = TypeCon ConList [TypeCon ConChar []]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "fst"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "snd"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "b"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "curry"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeFun (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "c"})))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "c"}))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "uncurry"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "c"}))))) (TypeFun (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "c"})))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [], className = Ident {unpackIdent = "Eq"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "(==)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))},Signature {signatureName = Ident {unpackIdent = "(/=)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Eq"})], className = Ident {unpackIdent = "Ord"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "compare"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ordering"})) []))},Signature {signatureName = Ident {unpackIdent = "(<)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))},Signature {signatureName = Ident {unpackIdent = "(<=)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))},Signature {signatureName = Ident {unpackIdent = "(>)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))},Signature {signatureName = Ident {unpackIdent = "(>=)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "max"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "min"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [], className = Ident {unpackIdent = "Enum"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "succ"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "pred"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "toEnum"}, signatureType = TypeFun (TypeCon ConInt []) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "fromEnum"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConInt [])},Signature {signatureName = Ident {unpackIdent = "enumFrom"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])},Signature {signatureName = Ident {unpackIdent = "enumFromThen"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))},Signature {signatureName = Ident {unpackIdent = "enumFromTo"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))},Signature {signatureName = Ident {unpackIdent = "enumFromThenTo"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [], className = Ident {unpackIdent = "Bounded"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "minBound"}, signatureType = TypeVar (TV (Ident {unpackIdent = "a"}))},Signature {signatureName = Ident {unpackIdent = "maxBound"}, signatureType = TypeVar (TV (Ident {unpackIdent = "a"}))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeDecl (Type {typeName = Ident {unpackIdent = "Rational"}, typeVars = [], typeRhs = TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeCon ConInteger []]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Eq"}),TC (Ident {unpackIdent = "Show"})], className = Ident {unpackIdent = "Num"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "(+)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "(-)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "(*)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "negate"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "abs"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "signum"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "fromInteger"}, signatureType = TypeFun (TypeCon ConInteger []) (TypeVar (TV (Ident {unpackIdent = "a"})))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Num"}),TC (Ident {unpackIdent = "Ord"})], className = Ident {unpackIdent = "Real"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "toRational"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeCon ConInteger []])}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Real"}),TC (Ident {unpackIdent = "Enum"})], className = Ident {unpackIdent = "Integral"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "quot"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "rem"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "div"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "mod"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "quotRem"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "a"}))]))},Signature {signatureName = Ident {unpackIdent = "divMod"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "a"}))]))},Signature {signatureName = Ident {unpackIdent = "toInteger"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConInteger [])}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Num"})], className = Ident {unpackIdent = "Fractional"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "(/)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "recip"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "fromRational"}, signatureType = TypeFun (TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeCon ConInteger []]) (TypeVar (TV (Ident {unpackIdent = "a"})))}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Fractional"})], className = Ident {unpackIdent = "Floating"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "pi"}, signatureType = TypeVar (TV (Ident {unpackIdent = "a"}))},Signature {signatureName = Ident {unpackIdent = "exp"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "log"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "sqrt"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "(**)"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "logBase"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "sin"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "cos"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "tan"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "asin"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "acos"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "atan"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "sinh"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "cosh"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "tanh"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "asinh"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "acosh"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "atanh"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "Real"}),TC (Ident {unpackIdent = "Fractional"})], className = Ident {unpackIdent = "RealFrac"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "properFraction"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "a"}))]))},Signature {signatureName = Ident {unpackIdent = "truncate"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))},Signature {signatureName = Ident {unpackIdent = "round"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))},Signature {signatureName = Ident {unpackIdent = "ceiling"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))},Signature {signatureName = Ident {unpackIdent = "floor"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [TC (Ident {unpackIdent = "RealFrac"}),TC (Ident {unpackIdent = "Floating"})], className = Ident {unpackIdent = "RealFloat"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "floatRadix"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConInteger [])},Signature {signatureName = Ident {unpackIdent = "floatDigits"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConInt [])},Signature {signatureName = Ident {unpackIdent = "floatRange"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (ConTuple 2) [TypeCon ConInt [],TypeCon ConInt []])},Signature {signatureName = Ident {unpackIdent = "decodeFloat"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (ConTuple 2) [TypeCon ConInteger [],TypeCon ConInt []])},Signature {signatureName = Ident {unpackIdent = "encodeFloat"}, signatureType = TypeFun (TypeCon ConInteger []) (TypeFun (TypeCon ConInt []) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "exponent"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConInt [])},Signature {signatureName = Ident {unpackIdent = "significand"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))},Signature {signatureName = Ident {unpackIdent = "scaleFloat"}, signatureType = TypeFun (TypeCon ConInt []) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "isNaN"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])},Signature {signatureName = Ident {unpackIdent = "isInfinite"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])},Signature {signatureName = Ident {unpackIdent = "isDenormalized"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])},Signature {signatureName = Ident {unpackIdent = "isNegativeZero"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])},Signature {signatureName = Ident {unpackIdent = "isIEEE"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])},Signature {signatureName = Ident {unpackIdent = "atan2"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "subtract"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Num"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "even"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "odd"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "gcd"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "lcm"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(^)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Num"})] (TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(^^)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Fractional"})] (TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "fromIntegral"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Num"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "realToFrac"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Real"})] (TypeAbs (TV (Ident {unpackIdent = "b"})) [TC (Ident {unpackIdent = "Fractional"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "id"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "const"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(.)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "c"})))) (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "c"}))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "flip"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "c"}))))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "c"}))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "($)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "until"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "asTypeOf"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "error"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "undefined"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeVar (TV (Ident {unpackIdent = "a"})))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "seq"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "($!)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "map"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"})))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(++)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "filter"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "head"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "last"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "tail"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "init"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "null"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "length"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConInt []))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(!!)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConInt []) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "reverse"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "foldl"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "foldl1"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "foldr"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "b"})))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "foldr1"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "and"}, signatureType = TypeFun (TypeCon ConList [TypeCon (Con (Ident {unpackIdent = "Bool"})) []]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "or"}, signatureType = TypeFun (TypeCon ConList [TypeCon (Con (Ident {unpackIdent = "Bool"})) []]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "any"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "all"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "sum"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Num"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "product"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Num"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "concat"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "concatMap"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "maximum"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Ord"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "minimum"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Ord"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "scanl"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "scanl1"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "scanr"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))])))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "scanr1"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "iterate"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"})))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "repeat"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "replicate"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConInt []) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "cycle"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "take"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConInt []) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "drop"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConInt []) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "splitAt"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConInt []) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "takeWhile"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "dropWhile"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "span"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "break"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "elem"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "notElem"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "lookup"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]]) (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "b"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zip"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zip3"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeCon ConList [TypeCon (ConTuple 3) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"}))]]))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zipWith"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "c"}))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zipWith3"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "c"}))) (TypeVar (TV (Ident {unpackIdent = "d"})))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unzip"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]]) (TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unzip3"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeFun (TypeCon ConList [TypeCon (ConTuple 3) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"}))]]) (TypeCon (ConTuple 3) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "lines"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConList [TypeCon ConChar []]])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "words"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConList [TypeCon ConChar []]])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unlines"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConList [TypeCon ConChar []]]) (TypeCon ConList [TypeCon ConChar []])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unwords"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConList [TypeCon ConChar []]]) (TypeCon ConList [TypeCon ConChar []])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeDecl (Type {typeName = Ident {unpackIdent = "ShowS"}, typeVars = [], typeRhs = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [], className = Ident {unpackIdent = "Show"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "showsPrec"}, signatureType = TypeFun (TypeCon ConInt []) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []])))},Signature {signatureName = Ident {unpackIdent = "show"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeCon ConChar []])},Signature {signatureName = Ident {unpackIdent = "showList"}, signatureType = TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []]))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "shows"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Show"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "showChar"}, signatureType = TypeFun (TypeCon ConChar []) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "showString"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "showParen"}, signatureType = TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeFun (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []])) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon ConChar []])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeDecl (Type {typeName = Ident {unpackIdent = "ReadS"}, typeVars = [TV (Ident {unpackIdent = "a"})], typeRhs = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeCon ConList [TypeCon ConChar []]]])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [], className = Ident {unpackIdent = "Read"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "readsPrec"}, signatureType = TypeFun (TypeCon ConInt []) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeCon ConList [TypeCon ConChar []]]]))},Signature {signatureName = Ident {unpackIdent = "readList"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeCon ConChar []]]])}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "reads"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Read"})] (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeCon ConList [TypeCon ConChar []]]]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "readParen"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Bool"})) []) (TypeFun (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeCon ConList [TypeCon ConChar []]]])) (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeCon ConList [TypeCon ConChar []]]]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "read"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Read"})] (TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "lex"}, signatureType = TypeFun (TypeCon ConList [TypeCon ConChar []]) (TypeCon ConList [TypeCon (ConTuple 2) [TypeCon ConList [TypeCon ConChar []],TypeCon ConList [TypeCon ConChar []]]])}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeDecl (Type {typeName = Ident {unpackIdent = "FilePath"}, typeVars = [], typeRhs = TypeCon ConList [TypeCon ConChar []]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = DataDecl (Data {dataName = Ident {unpackIdent = "Complex"}, dataVars = [TV (Ident {unpackIdent = "a"})], dataCons = [DataCon {dataConName = Ident {unpackIdent = "(:+)"}, dataConTypes = [Banged {withoutBang = TypeVar (TV (Ident {unpackIdent = "a"}))},Banged {withoutBang = TypeVar (TV (Ident {unpackIdent = "a"}))}]}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "realPart"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "imagPart"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "mkPolar"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "cis"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "polar"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "magnitude"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "phase"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "conjugate"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFloat"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Complex"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "intersperse"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "transpose"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]]) (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "foldl'"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "foldl1'"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "mapAccumL"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "acc"})) [] (TypeAbs (TV (Ident {unpackIdent = "x"})) [] (TypeAbs (TV (Ident {unpackIdent = "y"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "acc"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "x"}))) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "acc"})),TypeVar (TV (Ident {unpackIdent = "y"}))]))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "acc"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "x"}))]) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "acc"})),TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "y"}))]]))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "mapAccumR"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "acc"})) [] (TypeAbs (TV (Ident {unpackIdent = "x"})) [] (TypeAbs (TV (Ident {unpackIdent = "y"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "acc"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "x"}))) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "acc"})),TypeVar (TV (Ident {unpackIdent = "y"}))]))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "acc"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "x"}))]) (TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "acc"})),TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "y"}))]]))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unfoldr"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeCon (ConTuple 2) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"}))]])) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "group"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "inits"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "tails"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "isPrefixOf"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "isSuffixOf"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "find"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "partition"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) [])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zip4"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeCon ConList [TypeCon (ConTuple 4) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"}))]]))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zip5"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]) (TypeCon ConList [TypeCon (ConTuple 5) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"})),TypeVar (TV (Ident {unpackIdent = "e"}))]]))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zip6"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))]) (TypeCon ConList [TypeCon (ConTuple 6) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"})),TypeVar (TV (Ident {unpackIdent = "e"})),TypeVar (TV (Ident {unpackIdent = "f"}))]]))))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zip7"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeAbs (TV (Ident {unpackIdent = "g"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "g"}))]) (TypeCon ConList [TypeCon (ConTuple 7) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"})),TypeVar (TV (Ident {unpackIdent = "e"})),TypeVar (TV (Ident {unpackIdent = "f"})),TypeVar (TV (Ident {unpackIdent = "g"}))]]))))))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zipWith4"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "c"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "d"}))) (TypeVar (TV (Ident {unpackIdent = "e"}))))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zipWith5"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "c"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "d"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "e"}))) (TypeVar (TV (Ident {unpackIdent = "f"})))))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))]))))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zipWith6"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeAbs (TV (Ident {unpackIdent = "g"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "c"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "d"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "e"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "f"}))) (TypeVar (TV (Ident {unpackIdent = "g"}))))))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "g"}))]))))))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "zipWith7"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeAbs (TV (Ident {unpackIdent = "g"})) [] (TypeAbs (TV (Ident {unpackIdent = "h"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "b"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "c"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "d"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "e"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "f"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "g"}))) (TypeVar (TV (Ident {unpackIdent = "h"})))))))))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "g"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "h"}))]))))))))))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unzip4"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeFun (TypeCon ConList [TypeCon (ConTuple 4) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"}))]]) (TypeCon (ConTuple 4) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))]])))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unzip5"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeFun (TypeCon ConList [TypeCon (ConTuple 5) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"})),TypeVar (TV (Ident {unpackIdent = "e"}))]]) (TypeCon (ConTuple 5) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))]]))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unzip6"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeFun (TypeCon ConList [TypeCon (ConTuple 6) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"})),TypeVar (TV (Ident {unpackIdent = "e"})),TypeVar (TV (Ident {unpackIdent = "f"}))]]) (TypeCon (ConTuple 6) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))]])))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unzip7"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "c"})) [] (TypeAbs (TV (Ident {unpackIdent = "d"})) [] (TypeAbs (TV (Ident {unpackIdent = "e"})) [] (TypeAbs (TV (Ident {unpackIdent = "f"})) [] (TypeAbs (TV (Ident {unpackIdent = "g"})) [] (TypeFun (TypeCon ConList [TypeCon (ConTuple 7) [TypeVar (TV (Ident {unpackIdent = "a"})),TypeVar (TV (Ident {unpackIdent = "b"})),TypeVar (TV (Ident {unpackIdent = "c"})),TypeVar (TV (Ident {unpackIdent = "d"})),TypeVar (TV (Ident {unpackIdent = "e"})),TypeVar (TV (Ident {unpackIdent = "f"})),TypeVar (TV (Ident {unpackIdent = "g"}))]]) (TypeCon (ConTuple 7) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "c"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "d"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "e"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "f"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "g"}))]]))))))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "nub"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "delete"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(\\\\)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "union"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "intersect"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Eq"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "sort"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Ord"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "insert"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Ord"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "nubBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "deleteBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "deleteFirstsBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "unionBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "intersectBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "groupBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "sortBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ordering"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "insertBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ordering"})) []))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "maximumBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ordering"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "minimumBy"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ordering"})) []))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "genericLength"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "i"})) [TC (Ident {unpackIdent = "Num"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeVar (TV (Ident {unpackIdent = "i"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "genericTake"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "i"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "i"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "genericDrop"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "i"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "i"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "genericSplitAt"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "i"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "i"}))) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeCon (ConTuple 2) [TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))],TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]]))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "genericIndex"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "b"}))))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "genericReplicate"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "i"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "i"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "isJust"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "isNothing"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Bool"})) []))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "fromJust"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "fromMaybe"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "listToMaybe"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "maybeToList"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "catMaybes"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeFun (TypeCon ConList [TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "mapMaybe"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [] (TypeAbs (TV (Ident {unpackIdent = "b"})) [] (TypeFun (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Maybe"})) [TypeVar (TV (Ident {unpackIdent = "b"}))])) (TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "b"}))]))))}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = ClassDecl (Class {superClasses = [], className = Ident {unpackIdent = "Monoid"}, classVar = TV (Ident {unpackIdent = "a"}), classFuns = [Signature {signatureName = Ident {unpackIdent = "mempty"}, signatureType = TypeVar (TV (Ident {unpackIdent = "a"}))},Signature {signatureName = Ident {unpackIdent = "mappend"}, signatureType = TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeVar (TV (Ident {unpackIdent = "a"}))))},Signature {signatureName = Ident {unpackIdent = "mconcat"}, signatureType = TypeFun (TypeCon ConList [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"})))}]}), isStrictDeclaration = False},ValidDeclaration {rawDeclaration = DataDecl (Data {dataName = Ident {unpackIdent = "Ratio"}, dataVars = [TV (Ident {unpackIdent = "a"})], dataCons = [DataCon {dataConName = Ident {unpackIdent = "(:%)"}, dataConTypes = [Banged {withoutBang = TypeVar (TV (Ident {unpackIdent = "a"}))},Banged {withoutBang = TypeVar (TV (Ident {unpackIdent = "a"}))}]}]}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "(%)"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeVar (TV (Ident {unpackIdent = "a"}))])))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "numerator"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "denominator"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "Integral"})] (TypeFun (TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeVar (TV (Ident {unpackIdent = "a"}))]) (TypeVar (TV (Ident {unpackIdent = "a"}))))}), isStrictDeclaration = True},ValidDeclaration {rawDeclaration = TypeSig (Signature {signatureName = Ident {unpackIdent = "approxRational"}, signatureType = TypeAbs (TV (Ident {unpackIdent = "a"})) [TC (Ident {unpackIdent = "RealFrac"})] (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeFun (TypeVar (TV (Ident {unpackIdent = "a"}))) (TypeCon (Con (Ident {unpackIdent = "Ratio"})) [TypeCon ConInteger []])))}), isStrictDeclaration = True}] {- Functions to construct some abstract syntax elements -} dataDecl name constructors = ValidDeclaration { rawDeclaration = DataDecl (Data { dataName = Ident {unpackIdent = name} , dataVars = [] , dataCons = constructors }) , isStrictDeclaration = False } simpleCons name = DataCon { dataConName = Ident {unpackIdent = name} , dataConTypes = [] }