interface Language.Haskell.Syntax where {
{-# NEED #-}
instance Prelude.Functor NHC.Internal.IO;
{-# NEED #-}
instance Prelude.Monad NHC.Internal.IO;
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Fractional (Ratio.Ratio a);
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.RealFrac (Ratio.Ratio a);
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Num (Ratio.Ratio a);
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Real (Ratio.Ratio a);
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Enum (Ratio.Ratio a);
{-# NEED #-}
instance (Prelude.Read a,Prelude.Integral a) => Prelude.Read (Ratio.Ratio a);
{-# NEED #-}
instance Prelude.Ord HsSafety;
{-# NEED #-}
instance Prelude.Ord HsCName;
{-# NEED #-}
instance Prelude.Ord HsOp;
{-# NEED #-}
instance Prelude.Ord HsQOp;
{-# NEED #-}
instance Prelude.Ord HsName;
{-# NEED #-}
instance Prelude.Ord HsQName;
{-# NEED #-}
instance Prelude.Ord HsSpecialCon;
{-# NEED #-}
instance Prelude.Ord Module;
{-# NEED #-}
instance Prelude.Ord SrcLoc;
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Ord (Ratio.Ratio a);
{-# NEED #-}
instance Prelude.Eq HsGuardedAlt;
{-# NEED #-}
instance Prelude.Eq HsGuardedAlts;
{-# NEED #-}
instance Prelude.Eq HsAlt;
{-# NEED #-}
instance Prelude.Eq HsFieldUpdate;
{-# NEED #-}
instance Prelude.Eq HsStmt;
{-# NEED #-}
instance Prelude.Eq HsPatField;
{-# NEED #-}
instance Prelude.Eq HsPat;
{-# NEED #-}
instance Prelude.Eq HsExp;
{-# NEED #-}
instance Prelude.Eq HsLiteral;
{-# NEED #-}
instance Prelude.Eq HsType;
{-# NEED #-}
instance Prelude.Eq HsQualType;
{-# NEED #-}
instance Prelude.Eq HsSafety;
{-# NEED #-}
instance Prelude.Eq HsGuardedRhs;
{-# NEED #-}
instance Prelude.Eq HsRhs;
{-# NEED #-}
instance Prelude.Eq HsBangType;
{-# NEED #-}
instance Prelude.Eq HsConDecl;
{-# NEED #-}
instance Prelude.Eq HsMatch;
{-# NEED #-}
instance Prelude.Eq HsDecl;
{-# NEED #-}
instance Prelude.Eq HsAssoc;
{-# NEED #-}
instance Prelude.Eq HsImportSpec;
{-# NEED #-}
instance Prelude.Eq HsImportDecl;
{-# NEED #-}
instance Prelude.Eq HsExportSpec;
{-# NEED #-}
instance Prelude.Eq HsCName;
{-# NEED #-}
instance Prelude.Eq HsOp;
{-# NEED #-}
instance Prelude.Eq HsQOp;
{-# NEED #-}
instance Prelude.Eq HsName;
{-# NEED #-}
instance Prelude.Eq HsQName;
{-# NEED #-}
instance Prelude.Eq HsSpecialCon;
{-# NEED #-}
instance Prelude.Eq Module;
{-# NEED #-}
instance Prelude.Eq SrcLoc;
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Eq (Ratio.Ratio a);
{-# NEED #-}
instance Prelude.Show HsGuardedAlt;
{-# NEED #-}
instance Prelude.Show HsGuardedAlts;
{-# NEED #-}
instance Prelude.Show HsAlt;
{-# NEED #-}
instance Prelude.Show HsFieldUpdate;
{-# NEED #-}
instance Prelude.Show HsStmt;
{-# NEED #-}
instance Prelude.Show HsPatField;
{-# NEED #-}
instance Prelude.Show HsPat;
{-# NEED #-}
instance Prelude.Show HsExp;
{-# NEED #-}
instance Prelude.Show HsLiteral;
{-# NEED #-}
instance Prelude.Show HsType;
{-# NEED #-}
instance Prelude.Show HsQualType;
{-# NEED #-}
instance Prelude.Show HsSafety;
{-# NEED #-}
instance Prelude.Show HsGuardedRhs;
{-# NEED #-}
instance Prelude.Show HsRhs;
{-# NEED #-}
instance Prelude.Show HsBangType;
{-# NEED #-}
instance Prelude.Show HsConDecl;
{-# NEED #-}
instance Prelude.Show HsMatch;
{-# NEED #-}
instance Prelude.Show HsDecl;
{-# NEED #-}
instance Prelude.Show HsAssoc;
{-# NEED #-}
instance Prelude.Show HsImportSpec;
{-# NEED #-}
instance Prelude.Show HsImportDecl;
{-# NEED #-}
instance Prelude.Show HsExportSpec;
{-# NEED #-}
instance Prelude.Show HsModule;
{-# NEED #-}
instance Prelude.Show HsCName;
{-# NEED #-}
instance Prelude.Show HsOp;
{-# NEED #-}
instance Prelude.Show HsQOp;
{-# NEED #-}
instance Prelude.Show HsName;
{-# NEED #-}
instance Prelude.Show HsQName;
{-# NEED #-}
instance Prelude.Show HsSpecialCon;
{-# NEED #-}
instance Prelude.Show Module;
{-# NEED #-}
instance Prelude.Show SrcLoc;
{-# NEED #-}
instance (Prelude.Integral a) => Prelude.Show (Ratio.Ratio a);
{-# NEED #-}
instance (Prelude.Show a) => Prelude.Show (NHC.Internal.IO a);
interface NHC.Internal
{-# NEED IO #-}
newtype {-# #-} IO a;
{-# NEED World #-}
data World;
interface ! Language.Haskell.Syntax
{-# NEED tuple_tycon #-}
tuple_tycon{-# 1 #-}::(Prelude.Int -> HsType);
{-# NEED list_tycon #-}
list_tycon{-# 0 #-}::HsType;
{-# NEED fun_tycon #-}
fun_tycon{-# 0 #-}::HsType;
{-# NEED unit_tycon #-}
unit_tycon{-# 0 #-}::HsType;
{-# NEED tuple_tycon_name #-}
tuple_tycon_name{-# 1 #-}::(Prelude.Int -> HsQName);
{-# NEED list_tycon_name #-}
list_tycon_name{-# 0 #-}::HsQName;
{-# NEED fun_tycon_name #-}
fun_tycon_name{-# 0 #-}::HsQName;
{-# NEED unit_tycon_name #-}
unit_tycon_name{-# 0 #-}::HsQName;
{-# NEED tuple_con #-}
tuple_con{-# 1 #-}::(Prelude.Int -> HsExp);
{-# NEED unit_con #-}
unit_con{-# 0 #-}::HsExp;
{-# NEED list_cons_name #-}
list_cons_name{-# 0 #-}::HsQName;
{-# NEED tuple_con_name #-}
tuple_con_name{-# 1 #-}::(Prelude.Int -> HsQName);
{-# NEED unit_con_name #-}
unit_con_name{-# 0 #-}::HsQName;
{-# NEED main_name #-}
main_name{-# 0 #-}::HsName;
{-# NEED main_mod #-}
main_mod{-# 0 #-}::Module;
{-# NEED prelude_mod #-}
prelude_mod{-# 0 #-}::Module;
{-# NEED {HsModule HsModule} #-}
data HsModule
= HsModule SrcLoc Module (Prelude.Maybe [HsExportSpec]) [HsImportDecl] [HsDecl];
{-# NEED {HsDecl HsTypeDecl HsDataDecl HsInfixDecl HsNewTypeDecl HsClassDecl HsInstDecl HsDefaultDecl HsTypeSig HsFunBind HsPatBind HsForeignImport HsForeignExport} {HsMatch HsMatch} {HsRhs HsUnGuardedRhs HsGuardedRhss} {HsGuardedRhs HsGuardedRhs} {HsExp HsVar HsCon HsLit HsInfixApp HsApp HsNegApp HsLambda HsLet HsIf HsCase HsDo HsTuple HsList HsParen HsLeftSection HsRightSection HsRecConstr HsRecUpdate HsEnumFrom HsEnumFromTo HsEnumFromThen HsEnumFromThenTo HsListComp HsExpTypeSig HsAsPat HsWildCard HsIrrPat} {HsStmt HsGenerator HsQualifier HsLetStmt} {HsFieldUpdate HsFieldUpdate} {HsAlt HsAlt} {HsGuardedAlts HsUnGuardedAlt HsGuardedAlts} {HsGuardedAlt HsGuardedAlt} #-}
data HsDecl
= HsTypeDecl SrcLoc HsName [HsName] HsType
| HsDataDecl SrcLoc HsContext HsName [HsName] [HsConDecl] [HsQName]
| HsInfixDecl SrcLoc HsAssoc Prelude.Int [HsOp]
| HsNewTypeDecl SrcLoc HsContext HsName [HsName] HsConDecl [HsQName]
| HsClassDecl SrcLoc HsContext HsName [HsName] [HsDecl]
| HsInstDecl SrcLoc HsContext HsQName [HsType] [HsDecl]
| HsDefaultDecl SrcLoc [HsType]
| HsTypeSig SrcLoc [HsName] HsQualType
| HsFunBind [HsMatch]
| HsPatBind SrcLoc HsPat HsRhs [HsDecl]
| HsForeignImport SrcLoc Prelude.String HsSafety Prelude.String HsName HsType
| HsForeignExport SrcLoc Prelude.String Prelude.String HsName HsType;
data HsMatch
= HsMatch SrcLoc HsName [HsPat] HsRhs [HsDecl];
data HsRhs
= HsUnGuardedRhs HsExp
| HsGuardedRhss [HsGuardedRhs];
data HsGuardedRhs
= HsGuardedRhs SrcLoc HsExp HsExp;
data HsExp
= HsVar HsQName
| HsCon HsQName
| HsLit HsLiteral
| HsInfixApp HsExp HsQOp HsExp
| HsApp HsExp HsExp
| HsNegApp HsExp
| HsLambda SrcLoc [HsPat] HsExp
| HsLet [HsDecl] HsExp
| HsIf HsExp HsExp HsExp
| HsCase HsExp [HsAlt]
| HsDo [HsStmt]
| HsTuple [HsExp]
| HsList [HsExp]
| HsParen HsExp
| HsLeftSection HsExp HsQOp
| HsRightSection HsQOp HsExp
| HsRecConstr HsQName [HsFieldUpdate]
| HsRecUpdate HsExp [HsFieldUpdate]
| HsEnumFrom HsExp
| HsEnumFromTo HsExp HsExp
| HsEnumFromThen HsExp HsExp
| HsEnumFromThenTo HsExp HsExp HsExp
| HsListComp HsExp [HsStmt]
| HsExpTypeSig SrcLoc HsExp HsQualType
| HsAsPat HsName HsExp
| HsWildCard
| HsIrrPat HsExp;
data HsStmt
= HsGenerator SrcLoc HsPat HsExp
| HsQualifier HsExp
| HsLetStmt [HsDecl];
data HsFieldUpdate
= HsFieldUpdate HsQName HsExp;
data HsAlt
= HsAlt SrcLoc HsPat HsGuardedAlts [HsDecl];
data HsGuardedAlts
= HsUnGuardedAlt HsExp
| HsGuardedAlts [HsGuardedAlt];
data HsGuardedAlt
= HsGuardedAlt SrcLoc HsExp HsExp;
{-# NEED {HsSafety HsSafe HsUnsafe} #-}
data HsSafety
= HsSafe
| HsUnsafe ;
{-# NEED {HsPat HsPVar HsPLit HsPNeg HsPInfixApp HsPApp HsPTuple HsPList HsPParen HsPRec HsPAsPat HsPWildCard HsPIrrPat} {HsPatField HsPFieldPat} #-}
data HsPat
= HsPVar HsName
| HsPLit HsLiteral
| HsPNeg HsPat
| HsPInfixApp HsPat HsQName HsPat
| HsPApp HsQName [HsPat]
| HsPTuple [HsPat]
| HsPList [HsPat]
| HsPParen HsPat
| HsPRec HsQName [HsPatField]
| HsPAsPat HsName HsPat
| HsPWildCard
| HsPIrrPat HsPat;
data HsPatField
= HsPFieldPat HsQName HsPat;
{-# NEED {HsLiteral HsChar HsString HsInt HsFrac HsCharPrim HsStringPrim HsIntPrim HsFloatPrim HsDoublePrim} #-}
data HsLiteral
= HsChar Prelude.Char
| HsString Prelude.String
| HsInt Prelude.Integer
| HsFrac Ratio.Rational
| HsCharPrim Prelude.Char
| HsStringPrim Prelude.String
| HsIntPrim Prelude.Integer
| HsFloatPrim Ratio.Rational
| HsDoublePrim Ratio.Rational;
interface Ratio
{-# NEED Rational #-}
type {-# 1 #-} Rational = (Ratio.Ratio Prelude.Integer);
{-# NEED Ratio #-}
data Ratio a;
interface ! Language.Haskell.Syntax
{-# NEED {HsQualType HsQualType} #-}
data HsQualType
= HsQualType HsContext HsType;
{-# NEED {HsAssoc HsAssocNone HsAssocLeft HsAssocRight} #-}
data HsAssoc
= HsAssocNone
| HsAssocLeft
| HsAssocRight ;
{-# NEED {HsConDecl HsConDecl HsRecDecl} #-}
data HsConDecl
= HsConDecl SrcLoc HsName [HsBangType]
| HsRecDecl SrcLoc HsName [([HsName],HsBangType)];
{-# NEED {HsBangType HsBangedTy HsUnBangedTy} #-}
data HsBangType
= HsBangedTy HsType
| HsUnBangedTy HsType;
{-# NEED HsContext #-}
type {-# 2 #-} HsContext = [HsAsst];
{-# NEED HsAsst #-}
type {-# 1 #-} HsAsst = (HsQName,[HsType]);
{-# NEED {HsType HsTyFun HsTyTuple HsTyApp HsTyVar HsTyCon} #-}
data HsType
= HsTyFun HsType HsType
| HsTyTuple [HsType]
| HsTyApp HsType HsType
| HsTyVar HsName
| HsTyCon HsQName;
{-# NEED {HsImportDecl HsImportDecl importLoc importModule importQualified importAs importSpecs} #-}
data HsImportDecl
= HsImportDecl {importLoc :: SrcLoc} {importModule :: Module} {importQualified :: Prelude.Bool} {importAs :: (Prelude.Maybe Module)} {importSpecs :: (Prelude.Maybe (Prelude.Bool,[HsImportSpec]))};
{-# NEED {HsImportSpec HsIVar HsIAbs HsIThingAll HsIThingWith} #-}
data HsImportSpec
= HsIVar HsName
| HsIAbs HsName
| HsIThingAll HsName
| HsIThingWith HsName [HsCName];
{-# NEED {HsExportSpec HsEVar HsEAbs HsEThingAll HsEThingWith HsEModuleContents} #-}
data HsExportSpec
= HsEVar HsQName
| HsEAbs HsQName
| HsEThingAll HsQName
| HsEThingWith HsQName [HsCName]
| HsEModuleContents Module;
{-# NEED {HsCName HsVarName HsConName} #-}
data HsCName
= HsVarName HsName
| HsConName HsName;
{-# NEED {HsOp HsVarOp HsConOp} #-}
data HsOp
= HsVarOp HsName
| HsConOp HsName;
{-# NEED {HsQOp HsQVarOp HsQConOp} #-}
data HsQOp
= HsQVarOp HsQName
| HsQConOp HsQName;
{-# NEED {HsQName Qual UnQual Special} #-}
data HsQName
= Qual Module HsName
| UnQual HsName
| Special HsSpecialCon;
{-# NEED {HsName HsIdent HsSymbol} #-}
data HsName
= HsIdent Prelude.String
| HsSymbol Prelude.String;
{-# NEED {HsSpecialCon HsUnitCon HsListCon HsFunCon HsTupleCon HsCons} #-}
data HsSpecialCon
= HsUnitCon
| HsListCon
| HsFunCon
| HsTupleCon Prelude.Int
| HsCons ;
{-# NEED {Module Module} #-}
newtype {-# #-} Module
= Module Prelude.String;
{-# NEED {SrcLoc SrcLoc srcFilename srcLine srcColumn} #-}
data SrcLoc
= SrcLoc {srcFilename :: Prelude.String} {srcLine :: Prelude.Int} {srcColumn :: Prelude.Int};
}
|