{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface HsPat where import HsExpr(Expr) import HsLit(Literal) import Id(Id) import Name(Name) import Outputable(NamedThing, Outputable) import Pretty(PprStyle, PrettyRep) import ProtoName(ProtoName) import UniType(UniType) data InPat a = WildPatIn | VarPatIn a | LitPatIn Literal | LazyPatIn (InPat a) | AsPatIn a (InPat a) | ConPatIn a [InPat a] | ConOpPatIn (InPat a) a (InPat a) | ListPatIn [InPat a] | TuplePatIn [InPat a] | NPlusKPatIn a Literal type ProtoNamePat = InPat ProtoName type RenamedPat = InPat Name data TypecheckedPat = WildPat UniType | VarPat Id | LazyPat TypecheckedPat | AsPat Id TypecheckedPat | ConPat Id UniType [TypecheckedPat] | ConOpPat TypecheckedPat Id TypecheckedPat UniType | ListPat UniType [TypecheckedPat] | TuplePat [TypecheckedPat] | LitPat Literal UniType | NPat Literal UniType (Expr Id TypecheckedPat) | NPlusKPat Id Literal UniType (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) (Expr Id TypecheckedPat) irrefutablePat :: TypecheckedPat -> Bool isConPat :: TypecheckedPat -> Bool isLitPat :: TypecheckedPat -> Bool only_con :: Id -> Bool patsAreAllCons :: [TypecheckedPat] -> Bool patsAreAllLits :: [TypecheckedPat] -> Bool pprConPatTy :: PprStyle -> UniType -> Int -> Bool -> PrettyRep pprInPat :: Outputable a => PprStyle -> InPat a -> Int -> Bool -> PrettyRep pprTypecheckedPat :: PprStyle -> TypecheckedPat -> Int -> Bool -> PrettyRep typeOfPat :: TypecheckedPat -> UniType unfailablePat :: TypecheckedPat -> Bool unfailablePats :: [TypecheckedPat] -> Bool instance NamedThing a => NamedThing (InPat a) instance NamedThing TypecheckedPat instance Outputable a => Outputable (InPat a) instance Outputable TypecheckedPat