{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface HsMatches where import HsBinds(Binds) import HsExpr(Expr) import HsPat(InPat, TypecheckedPat) import Id(Id) import Name(Name) import Outputable(NamedThing, Outputable) import Pretty(PprStyle, PrettyRep) import ProtoName(ProtoName) import SrcLoc(SrcLoc) import UniType(UniType) data GRHS a b = GRHS (Expr a b) (Expr a b) SrcLoc | OtherwiseGRHS (Expr a b) SrcLoc data GRHSsAndBinds a b = GRHSsAndBindsIn [GRHS a b] (Binds a b) | GRHSsAndBindsOut [GRHS a b] (Binds a b) UniType data Match a b = PatMatch b (Match a b) | GRHSMatch (GRHSsAndBinds a b) type ProtoNameGRHS = GRHS ProtoName (InPat ProtoName) type ProtoNameGRHSsAndBinds = GRHSsAndBinds ProtoName (InPat ProtoName) type ProtoNameMatch = Match ProtoName (InPat ProtoName) type RenamedGRHS = GRHS Name (InPat Name) type RenamedGRHSsAndBinds = GRHSsAndBinds Name (InPat Name) type RenamedMatch = Match Name (InPat Name) type TypecheckedGRHS = GRHS Id TypecheckedPat type TypecheckedGRHSsAndBinds = GRHSsAndBinds Id TypecheckedPat type TypecheckedMatch = Match Id TypecheckedPat pprGRHS :: (NamedThing a, Outputable a, NamedThing b, Outputable b) => PprStyle -> Bool -> GRHS a b -> Int -> Bool -> PrettyRep pprGRHSsAndBinds :: (NamedThing a, Outputable a, NamedThing b, Outputable b) => PprStyle -> Bool -> GRHSsAndBinds a b -> Int -> Bool -> PrettyRep pprMatch :: (NamedThing a, Outputable a, NamedThing b, Outputable b) => PprStyle -> Bool -> Match a b -> Int -> Bool -> PrettyRep pprMatches :: (NamedThing a, Outputable a, NamedThing b, Outputable b) => PprStyle -> (Bool, Int -> Bool -> PrettyRep) -> [Match a b] -> Int -> Bool -> PrettyRep instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (GRHS a b) instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (GRHSsAndBinds a b) instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Match a b)