-- UUAGC 0.9.52.1 (build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePr) module UHC.Light.Compiler.Ty.Trf.MergePreds(tyMergePreds , TyMergePredOut (..) , TQOGam) where import UHC.Util.Utils import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Ty import UHC.Light.Compiler.VarMp import UHC.Light.Compiler.Substitutable import UHC.Light.Compiler.Gam import qualified Data.Set as Set import qualified Data.Map as Map import Data.List as List import Data.Maybe import UHC.Util.Pretty tvarSOccurCount :: [TyVarIdS] -> AssocL TyVarId Int tvarSOccurCount = map (\vl@(v:_) -> (v,length vl)) . group . sort . concat . map Set.toList tvarSOccurGE2 :: [TyVarIdS] -> TyVarIdS tvarSOccurGE2 = Set.fromList . map fst . filter ((>1).snd) . tvarSOccurCount data TyQuCtxt = TyQuCtxtArrow | TyQuCtxtProd | TyQuCtxtOnTop | TyQuCtxtOther deriving (Show,Eq) {-| There are some conventions/restrictions on the structure of types that are not enforced by the abstract syntax: Encoding of prove-constraints: concrete syntax: {! impls !} -> ty abstract syntax: Ty_App (Ty_App (Ty_Con "->") (Ty_Impls impls)) ty Encoding of assume-constraints: concrete syntax: (ty, {! pred1 !}, ..., {! predn !}) abstract syntax: Ty_Ext (... (Ty_Ext ty (prod m+1) (Ty_Pred pred_1) ) ...) (prod m+n) (Ty_Pred pred_n) In other words: the predicates are at the outset of a product, pred_n "more outermost" than pred_{n-1}. -} {-| The basic alternatives encode the following: - Con: data type constructors, including tuple constructors - App: application to 1 argument, for example 'a -> b' is encoded as (App (App -> a) b) - Any: representing Bot/Top depending on context: (1) unknown expected type, (2) error type - Var: type variables, including a category: plain tyvars, fixed tyvars (aka skolems) -} tyMergePreds :: [PredOcc] -> Ty -> TyMergePredOut tyMergePreds prL ty = let t = wrap_TyAGItf (sem_TyAGItf (TyAGItf_AGItf ty)) (Inh_TyAGItf { prLL_Inh_TyAGItf = [prL] }) in TyMergePredOut { tmpoTy = prTy_Syn_TyAGItf t , tmpoInsPrIdSet = insPrIdSet_Syn_TyAGItf t , tmpoImplsVarMp = assocImplsLToVarMp (prImpls_Syn_TyAGItf t) , tmpoImplsPrvReq = prvReqs_Syn_TyAGItf t } type InsPrPrvOcc = Assoc PredOcc [ImplsProveOcc] type PrvReqs = [InsPrPrvOcc] data TyMergePredOut = TyMergePredOut { tmpoTy :: Ty -- resulting ty , tmpoInsPrIdSet :: Set.Set PredOccId -- idents of merged predicates , tmpoImplsVarMp :: VarMp -- additional bindings, for implicits , tmpoImplsPrvReq :: PrvReqs -- additional occurrences of predicate occurrences, arising from implicits } instance Show TyMergePredOut where show _ = "" instance PP TyMergePredOut where pp tmpo = pp (tmpoImplsVarMp tmpo) >-< ppAssocLV (assocLMapElt ppBracketsCommas $ tmpoImplsPrvReq tmpo) type TQOGam = Gam HsName TyMergePredOut prLLArrowSplit :: TyVarIdS -> [[PredOcc]] -> ([PredOcc],[[PredOcc]]) prLLArrowSplit frTvS prLL = let (h,r) = partition (all (`Set.member` frTvS) . varFree) . concat $ prLL in (h,[r]) toInsPrPrvOcc :: [PredOcc] -> [ImplsProveOcc] -> [InsPrPrvOcc] toInsPrPrvOcc ps ipos = [ (p,ipos) | p <- ps ] prOccLImpls :: Maybe Impls -> [InsPrPrvOcc] -> AssocL ImplsVarId Impls prOccLImpls mbI prL = case mbI of Just i -> [( implsTailVar i , foldr (\(p,_) im -> Impls_Cons (poId p) (poPr p) (poPoi p) (poRange p) [] im ) Impls_Nil prL)] _ -> [] prOccLPrvReqs :: Maybe Impls -> [InsPrPrvOcc] -> PrvReqs prOccLPrvReqs mbI prL = maybe [] (const prL) mbI -- Impls ------------------------------------------------------- {- visit 0: inherited attributes: fxTvM : TvCatMp isAtTop : Bool isRow : Bool mbPrLoc : Maybe Impls pol : Polarity prLL : [[PredOcc]] qSurrTvS : TyVarIdS tyCtxt : TyQuCtxt chained attribute: prImpls : AssocL ImplsVarId Impls synthesized attributes: frTvSL : [TyVarIdS] gathFxTvM : TvCatMp insPrIdSet : Set.Set PredOccId insPrL : [PredOcc] prTy : Impls prvReqs : PrvReqs qInsideTvS : TyVarIdS qOrphanTvS : TyVarIdS self : Impls alternatives: alternative Tail: child iv : {ImplsVarId} child proveOccs : {[ImplsProveOcc]} visit 0: local prTy : _ local self : _ alternative Cons: child iv : {ImplsVarId} child pr : Pred child pv : {PredOccId} child prange : {Range} child proveOccs : {[ImplsProveOcc]} child tl : Impls visit 0: local prTy : _ local self : _ alternative Nil: visit 0: local prTy : _ local self : _ -} -- cata sem_Impls :: Impls -> T_Impls sem_Impls (Impls_Tail _iv _proveOccs) = (sem_Impls_Tail _iv _proveOccs) sem_Impls (Impls_Cons _iv _pr _pv _prange _proveOccs _tl) = (sem_Impls_Cons _iv (sem_Pred _pr) _pv _prange _proveOccs (sem_Impls _tl)) sem_Impls (Impls_Nil) = (sem_Impls_Nil) -- semantic domain type T_Impls = TvCatMp -> Bool -> Bool -> (Maybe Impls) -> Polarity -> (AssocL ImplsVarId Impls) -> ([[PredOcc]]) -> TyVarIdS -> TyQuCtxt -> ( ([TyVarIdS]),TvCatMp,(Set.Set PredOccId),([PredOcc]),(AssocL ImplsVarId Impls),Impls,PrvReqs,TyVarIdS,TyVarIdS,Impls) sem_Impls_Tail :: ImplsVarId -> ([ImplsProveOcc]) -> T_Impls sem_Impls_Tail iv_ proveOccs_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOqOrphanTvS :: TyVarIdS _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Impls _lhsOself :: Impls _lhsOprImpls :: (AssocL ImplsVarId Impls) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 32, column 17) _lhsOfrTvSL = [] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 133, column 17) _lhsOqOrphanTvS = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Impls_Tail iv_ proveOccs_ -- self rule _self = Impls_Tail iv_ proveOccs_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Impls_Cons :: ImplsVarId -> T_Pred -> PredOccId -> Range -> ([ImplsProveOcc]) -> T_Impls -> T_Impls sem_Impls_Cons iv_ pr_ pv_ prange_ proveOccs_ tl_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOqOrphanTvS :: TyVarIdS _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Impls _lhsOself :: Impls _lhsOprImpls :: (AssocL ImplsVarId Impls) _prOfxTvM :: TvCatMp _prOisAtTop :: Bool _prOisRow :: Bool _prOmbPrLoc :: (Maybe Impls) _prOpol :: Polarity _prOprImpls :: (AssocL ImplsVarId Impls) _prOprLL :: ([[PredOcc]]) _prOqSurrTvS :: TyVarIdS _prOtyCtxt :: TyQuCtxt _tlOfxTvM :: TvCatMp _tlOisAtTop :: Bool _tlOisRow :: Bool _tlOmbPrLoc :: (Maybe Impls) _tlOpol :: Polarity _tlOprImpls :: (AssocL ImplsVarId Impls) _tlOprLL :: ([[PredOcc]]) _tlOqSurrTvS :: TyVarIdS _tlOtyCtxt :: TyQuCtxt _prIfrTvSL :: ([TyVarIdS]) _prIgathFxTvM :: TvCatMp _prIinsPrIdSet :: (Set.Set PredOccId) _prIinsPrL :: ([PredOcc]) _prIprImpls :: (AssocL ImplsVarId Impls) _prIprTy :: Pred _prIprvReqs :: PrvReqs _prIqInsideTvS :: TyVarIdS _prIqOrphanTvS :: TyVarIdS _prIself :: Pred _tlIfrTvSL :: ([TyVarIdS]) _tlIgathFxTvM :: TvCatMp _tlIinsPrIdSet :: (Set.Set PredOccId) _tlIinsPrL :: ([PredOcc]) _tlIprImpls :: (AssocL ImplsVarId Impls) _tlIprTy :: Impls _tlIprvReqs :: PrvReqs _tlIqInsideTvS :: TyVarIdS _tlIqOrphanTvS :: TyVarIdS _tlIself :: Impls -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 33, column 17) _lhsOfrTvSL = _prIfrTvSL ++ _tlIfrTvSL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 132, column 25) _lhsOqOrphanTvS = _prIqOrphanTvS `Set.union` _tlIqOrphanTvS -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _prIgathFxTvM `Map.union` _tlIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _prIinsPrIdSet `Set.union` _tlIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _prIinsPrL ++ _tlIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _prIprvReqs ++ _tlIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _prIqInsideTvS `Set.union` _tlIqInsideTvS -- self rule _prTy = Impls_Cons iv_ _prIprTy pv_ prange_ proveOccs_ _tlIprTy -- self rule _self = Impls_Cons iv_ _prIself pv_ prange_ proveOccs_ _tlIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tlIprImpls -- copy rule (down) _prOfxTvM = _lhsIfxTvM -- copy rule (down) _prOisAtTop = _lhsIisAtTop -- copy rule (down) _prOisRow = _lhsIisRow -- copy rule (down) _prOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _prOpol = _lhsIpol -- copy rule (down) _prOprImpls = _lhsIprImpls -- copy rule (down) _prOprLL = _lhsIprLL -- copy rule (down) _prOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _prOtyCtxt = _lhsItyCtxt -- copy rule (down) _tlOfxTvM = _lhsIfxTvM -- copy rule (down) _tlOisAtTop = _lhsIisAtTop -- copy rule (down) _tlOisRow = _lhsIisRow -- copy rule (down) _tlOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tlOpol = _lhsIpol -- copy rule (chain) _tlOprImpls = _prIprImpls -- copy rule (down) _tlOprLL = _lhsIprLL -- copy rule (down) _tlOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tlOtyCtxt = _lhsItyCtxt ( _prIfrTvSL,_prIgathFxTvM,_prIinsPrIdSet,_prIinsPrL,_prIprImpls,_prIprTy,_prIprvReqs,_prIqInsideTvS,_prIqOrphanTvS,_prIself) = pr_ _prOfxTvM _prOisAtTop _prOisRow _prOmbPrLoc _prOpol _prOprImpls _prOprLL _prOqSurrTvS _prOtyCtxt ( _tlIfrTvSL,_tlIgathFxTvM,_tlIinsPrIdSet,_tlIinsPrL,_tlIprImpls,_tlIprTy,_tlIprvReqs,_tlIqInsideTvS,_tlIqOrphanTvS,_tlIself) = tl_ _tlOfxTvM _tlOisAtTop _tlOisRow _tlOmbPrLoc _tlOpol _tlOprImpls _tlOprLL _tlOqSurrTvS _tlOtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Impls_Nil :: T_Impls sem_Impls_Nil = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOqOrphanTvS :: TyVarIdS _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Impls _lhsOself :: Impls _lhsOprImpls :: (AssocL ImplsVarId Impls) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 32, column 17) _lhsOfrTvSL = [] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 133, column 17) _lhsOqOrphanTvS = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Impls_Nil -- self rule _self = Impls_Nil -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) -- Label ------------------------------------------------------- {- visit 0: synthesized attributes: prTy : Label self : Label alternatives: alternative Lab: child nm : {HsName} visit 0: local prTy : _ local self : _ alternative Var: child lv : {LabelVarId} visit 0: local prTy : _ local self : _ -} -- cata sem_Label :: Label -> T_Label sem_Label (Label_Lab _nm) = (sem_Label_Lab _nm) sem_Label (Label_Var _lv) = (sem_Label_Var _lv) -- semantic domain type T_Label = ( Label,Label) sem_Label_Lab :: HsName -> T_Label sem_Label_Lab nm_ = (let _lhsOprTy :: Label _lhsOself :: Label -- self rule _prTy = Label_Lab nm_ -- self rule _self = Label_Lab nm_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_Label_Var :: LabelVarId -> T_Label sem_Label_Var lv_ = (let _lhsOprTy :: Label _lhsOself :: Label -- self rule _prTy = Label_Var lv_ -- self rule _self = Label_Var lv_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) -- LabelAGItf -------------------------------------------------- {- alternatives: alternative AGItf: child lab : Label -} -- cata sem_LabelAGItf :: LabelAGItf -> T_LabelAGItf sem_LabelAGItf (LabelAGItf_AGItf _lab) = (sem_LabelAGItf_AGItf (sem_Label _lab)) -- semantic domain type T_LabelAGItf = ( ) sem_LabelAGItf_AGItf :: T_Label -> T_LabelAGItf sem_LabelAGItf_AGItf lab_ = (let _labIprTy :: Label _labIself :: Label ( _labIprTy,_labIself) = lab_ in ( )) -- Pred -------------------------------------------------------- {- visit 0: inherited attributes: fxTvM : TvCatMp isAtTop : Bool isRow : Bool mbPrLoc : Maybe Impls pol : Polarity prLL : [[PredOcc]] qSurrTvS : TyVarIdS tyCtxt : TyQuCtxt chained attribute: prImpls : AssocL ImplsVarId Impls synthesized attributes: frTvSL : [TyVarIdS] gathFxTvM : TvCatMp insPrIdSet : Set.Set PredOccId insPrL : [PredOcc] prTy : Pred prvReqs : PrvReqs qInsideTvS : TyVarIdS qOrphanTvS : TyVarIdS self : Pred alternatives: alternative Class: child ty : Ty visit 0: local appSpinePos : _ local prTy : _ local self : _ alternative Pred: child ty : Ty visit 0: local appSpinePos : _ local prTy : _ local self : _ alternative Lacks: child ty : Ty child lab : Label visit 0: local appSpinePos : _ local prTy : _ local self : _ alternative Arrow: child args : PredSeq child res : Pred visit 0: local appSpinePos : _ local prTy : _ local self : _ alternative Eq: child tyL : Ty child tyR : Ty visit 0: local appSpinePos : _ local prTy : _ local self : _ alternative Var: child pv : {TyVarId} visit 0: local appSpinePos : _ local prTy : _ local self : _ alternative Preds: child seq : PredSeq visit 0: local appSpinePos : _ local prTy : _ local self : _ -} -- cata sem_Pred :: Pred -> T_Pred sem_Pred (Pred_Class _ty) = (sem_Pred_Class (sem_Ty _ty)) sem_Pred (Pred_Pred _ty) = (sem_Pred_Pred (sem_Ty _ty)) sem_Pred (Pred_Lacks _ty _lab) = (sem_Pred_Lacks (sem_Ty _ty) (sem_Label _lab)) sem_Pred (Pred_Arrow _args _res) = (sem_Pred_Arrow (sem_PredSeq _args) (sem_Pred _res)) sem_Pred (Pred_Eq _tyL _tyR) = (sem_Pred_Eq (sem_Ty _tyL) (sem_Ty _tyR)) sem_Pred (Pred_Var _pv) = (sem_Pred_Var _pv) sem_Pred (Pred_Preds _seq) = (sem_Pred_Preds (sem_PredSeq _seq)) -- semantic domain type T_Pred = TvCatMp -> Bool -> Bool -> (Maybe Impls) -> Polarity -> (AssocL ImplsVarId Impls) -> ([[PredOcc]]) -> TyVarIdS -> TyQuCtxt -> ( ([TyVarIdS]),TvCatMp,(Set.Set PredOccId),([PredOcc]),(AssocL ImplsVarId Impls),Pred,PrvReqs,TyVarIdS,TyVarIdS,Pred) sem_Pred_Class :: T_Ty -> T_Pred sem_Pred_Class ty_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _tyOpol :: Polarity _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _tyOappSpinePos :: Int _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 56, column 17) _tyOpol = polInvariant -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _tyIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS -- self rule _prTy = Pred_Class _tyIprTy -- self rule _self = Pred_Class _tyIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (up) _lhsOqOrphanTvS = _tyIqOrphanTvS -- copy rule (from local) _tyOappSpinePos = _appSpinePos -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (down) _tyOisAtTop = _lhsIisAtTop -- copy rule (down) _tyOisRow = _lhsIisRow -- copy rule (down) _tyOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (down) _tyOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tyOtyCtxt = _lhsItyCtxt ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Pred_Pred :: T_Ty -> T_Pred sem_Pred_Pred ty_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _tyOpol :: Polarity _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _tyOappSpinePos :: Int _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 55, column 17) _tyOpol = polCovariant -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _tyIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS -- self rule _prTy = Pred_Pred _tyIprTy -- self rule _self = Pred_Pred _tyIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (up) _lhsOqOrphanTvS = _tyIqOrphanTvS -- copy rule (from local) _tyOappSpinePos = _appSpinePos -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (down) _tyOisAtTop = _lhsIisAtTop -- copy rule (down) _tyOisRow = _lhsIisRow -- copy rule (down) _tyOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (down) _tyOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tyOtyCtxt = _lhsItyCtxt ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Pred_Lacks :: T_Ty -> T_Label -> T_Pred sem_Pred_Lacks ty_ lab_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _tyOappSpinePos :: Int _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOpol :: Polarity _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty _labIprTy :: Label _labIself :: Label -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _tyIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS -- self rule _prTy = Pred_Lacks _tyIprTy _labIprTy -- self rule _self = Pred_Lacks _tyIself _labIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (up) _lhsOqOrphanTvS = _tyIqOrphanTvS -- copy rule (from local) _tyOappSpinePos = _appSpinePos -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (down) _tyOisAtTop = _lhsIisAtTop -- copy rule (down) _tyOisRow = _lhsIisRow -- copy rule (down) _tyOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tyOpol = _lhsIpol -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (down) _tyOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tyOtyCtxt = _lhsItyCtxt ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt ( _labIprTy,_labIself) = lab_ in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Pred_Arrow :: T_PredSeq -> T_Pred -> T_Pred sem_Pred_Arrow args_ res_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _argsOappSpinePos :: Int _argsOfxTvM :: TvCatMp _argsOisAtTop :: Bool _argsOisRow :: Bool _argsOmbPrLoc :: (Maybe Impls) _argsOpol :: Polarity _argsOprImpls :: (AssocL ImplsVarId Impls) _argsOprLL :: ([[PredOcc]]) _argsOqSurrTvS :: TyVarIdS _argsOtyCtxt :: TyQuCtxt _resOfxTvM :: TvCatMp _resOisAtTop :: Bool _resOisRow :: Bool _resOmbPrLoc :: (Maybe Impls) _resOpol :: Polarity _resOprImpls :: (AssocL ImplsVarId Impls) _resOprLL :: ([[PredOcc]]) _resOqSurrTvS :: TyVarIdS _resOtyCtxt :: TyQuCtxt _argsIfrTvSL :: ([TyVarIdS]) _argsIgathFxTvM :: TvCatMp _argsIinsPrIdSet :: (Set.Set PredOccId) _argsIinsPrL :: ([PredOcc]) _argsIprImpls :: (AssocL ImplsVarId Impls) _argsIprTy :: PredSeq _argsIprvReqs :: PrvReqs _argsIqInsideTvS :: TyVarIdS _argsIself :: PredSeq _resIfrTvSL :: ([TyVarIdS]) _resIgathFxTvM :: TvCatMp _resIinsPrIdSet :: (Set.Set PredOccId) _resIinsPrL :: ([PredOcc]) _resIprImpls :: (AssocL ImplsVarId Impls) _resIprTy :: Pred _resIprvReqs :: PrvReqs _resIqInsideTvS :: TyVarIdS _resIqOrphanTvS :: TyVarIdS _resIself :: Pred -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _argsIfrTvSL ++ _resIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _argsIgathFxTvM `Map.union` _resIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _argsIinsPrIdSet `Set.union` _resIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _argsIinsPrL ++ _resIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _argsIprvReqs ++ _resIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _argsIqInsideTvS `Set.union` _resIqInsideTvS -- self rule _prTy = Pred_Arrow _argsIprTy _resIprTy -- self rule _self = Pred_Arrow _argsIself _resIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _resIprImpls -- copy rule (up) _lhsOqOrphanTvS = _resIqOrphanTvS -- copy rule (from local) _argsOappSpinePos = _appSpinePos -- copy rule (down) _argsOfxTvM = _lhsIfxTvM -- copy rule (down) _argsOisAtTop = _lhsIisAtTop -- copy rule (down) _argsOisRow = _lhsIisRow -- copy rule (down) _argsOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _argsOpol = _lhsIpol -- copy rule (down) _argsOprImpls = _lhsIprImpls -- copy rule (down) _argsOprLL = _lhsIprLL -- copy rule (down) _argsOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _argsOtyCtxt = _lhsItyCtxt -- copy rule (down) _resOfxTvM = _lhsIfxTvM -- copy rule (down) _resOisAtTop = _lhsIisAtTop -- copy rule (down) _resOisRow = _lhsIisRow -- copy rule (down) _resOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _resOpol = _lhsIpol -- copy rule (chain) _resOprImpls = _argsIprImpls -- copy rule (down) _resOprLL = _lhsIprLL -- copy rule (down) _resOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _resOtyCtxt = _lhsItyCtxt ( _argsIfrTvSL,_argsIgathFxTvM,_argsIinsPrIdSet,_argsIinsPrL,_argsIprImpls,_argsIprTy,_argsIprvReqs,_argsIqInsideTvS,_argsIself) = args_ _argsOappSpinePos _argsOfxTvM _argsOisAtTop _argsOisRow _argsOmbPrLoc _argsOpol _argsOprImpls _argsOprLL _argsOqSurrTvS _argsOtyCtxt ( _resIfrTvSL,_resIgathFxTvM,_resIinsPrIdSet,_resIinsPrL,_resIprImpls,_resIprTy,_resIprvReqs,_resIqInsideTvS,_resIqOrphanTvS,_resIself) = res_ _resOfxTvM _resOisAtTop _resOisRow _resOmbPrLoc _resOpol _resOprImpls _resOprLL _resOqSurrTvS _resOtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Pred_Eq :: T_Ty -> T_Ty -> T_Pred sem_Pred_Eq tyL_ tyR_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _tyLOappSpinePos :: Int _tyLOfxTvM :: TvCatMp _tyLOisAtTop :: Bool _tyLOisRow :: Bool _tyLOmbPrLoc :: (Maybe Impls) _tyLOpol :: Polarity _tyLOprImpls :: (AssocL ImplsVarId Impls) _tyLOprLL :: ([[PredOcc]]) _tyLOqSurrTvS :: TyVarIdS _tyLOtyCtxt :: TyQuCtxt _tyROappSpinePos :: Int _tyROfxTvM :: TvCatMp _tyROisAtTop :: Bool _tyROisRow :: Bool _tyROmbPrLoc :: (Maybe Impls) _tyROpol :: Polarity _tyROprImpls :: (AssocL ImplsVarId Impls) _tyROprLL :: ([[PredOcc]]) _tyROqSurrTvS :: TyVarIdS _tyROtyCtxt :: TyQuCtxt _tyLIappFunNm :: HsName _tyLIfrTvSL :: ([TyVarIdS]) _tyLIgathFxTvM :: TvCatMp _tyLIinsPrIdSet :: (Set.Set PredOccId) _tyLIinsPrL :: ([PredOcc]) _tyLIisArrow :: Bool _tyLIisPred :: Bool _tyLIisQuLoc :: Bool _tyLImbImpls :: (Maybe Impls) _tyLIprImpls :: (AssocL ImplsVarId Impls) _tyLIprTy :: Ty _tyLIprvReqs :: PrvReqs _tyLIqInsideTvS :: TyVarIdS _tyLIqOrphanTvS :: TyVarIdS _tyLIself :: Ty _tyRIappFunNm :: HsName _tyRIfrTvSL :: ([TyVarIdS]) _tyRIgathFxTvM :: TvCatMp _tyRIinsPrIdSet :: (Set.Set PredOccId) _tyRIinsPrL :: ([PredOcc]) _tyRIisArrow :: Bool _tyRIisPred :: Bool _tyRIisQuLoc :: Bool _tyRImbImpls :: (Maybe Impls) _tyRIprImpls :: (AssocL ImplsVarId Impls) _tyRIprTy :: Ty _tyRIprvReqs :: PrvReqs _tyRIqInsideTvS :: TyVarIdS _tyRIqOrphanTvS :: TyVarIdS _tyRIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _tyLIfrTvSL ++ _tyRIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyLIgathFxTvM `Map.union` _tyRIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyLIinsPrIdSet `Set.union` _tyRIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyLIinsPrL ++ _tyRIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyLIprvReqs ++ _tyRIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyLIqInsideTvS `Set.union` _tyRIqInsideTvS -- self rule _prTy = Pred_Eq _tyLIprTy _tyRIprTy -- self rule _self = Pred_Eq _tyLIself _tyRIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyRIprImpls -- copy rule (up) _lhsOqOrphanTvS = _tyRIqOrphanTvS -- copy rule (from local) _tyLOappSpinePos = _appSpinePos -- copy rule (down) _tyLOfxTvM = _lhsIfxTvM -- copy rule (down) _tyLOisAtTop = _lhsIisAtTop -- copy rule (down) _tyLOisRow = _lhsIisRow -- copy rule (down) _tyLOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tyLOpol = _lhsIpol -- copy rule (down) _tyLOprImpls = _lhsIprImpls -- copy rule (down) _tyLOprLL = _lhsIprLL -- copy rule (down) _tyLOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tyLOtyCtxt = _lhsItyCtxt -- copy rule (from local) _tyROappSpinePos = _appSpinePos -- copy rule (down) _tyROfxTvM = _lhsIfxTvM -- copy rule (down) _tyROisAtTop = _lhsIisAtTop -- copy rule (down) _tyROisRow = _lhsIisRow -- copy rule (down) _tyROmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tyROpol = _lhsIpol -- copy rule (chain) _tyROprImpls = _tyLIprImpls -- copy rule (down) _tyROprLL = _lhsIprLL -- copy rule (down) _tyROqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tyROtyCtxt = _lhsItyCtxt ( _tyLIappFunNm,_tyLIfrTvSL,_tyLIgathFxTvM,_tyLIinsPrIdSet,_tyLIinsPrL,_tyLIisArrow,_tyLIisPred,_tyLIisQuLoc,_tyLImbImpls,_tyLIprImpls,_tyLIprTy,_tyLIprvReqs,_tyLIqInsideTvS,_tyLIqOrphanTvS,_tyLIself) = tyL_ _tyLOappSpinePos _tyLOfxTvM _tyLOisAtTop _tyLOisRow _tyLOmbPrLoc _tyLOpol _tyLOprImpls _tyLOprLL _tyLOqSurrTvS _tyLOtyCtxt ( _tyRIappFunNm,_tyRIfrTvSL,_tyRIgathFxTvM,_tyRIinsPrIdSet,_tyRIinsPrL,_tyRIisArrow,_tyRIisPred,_tyRIisQuLoc,_tyRImbImpls,_tyRIprImpls,_tyRIprTy,_tyRIprvReqs,_tyRIqInsideTvS,_tyRIqOrphanTvS,_tyRIself) = tyR_ _tyROappSpinePos _tyROfxTvM _tyROisAtTop _tyROisRow _tyROmbPrLoc _tyROpol _tyROprImpls _tyROprLL _tyROqSurrTvS _tyROtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Pred_Var :: TyVarId -> T_Pred sem_Pred_Var pv_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOqOrphanTvS :: TyVarIdS _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 138, column 33) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Pred_Var pv_ -- self rule _self = Pred_Var pv_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Pred_Preds :: T_PredSeq -> T_Pred sem_Pred_Preds seq_ = (\ _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOqOrphanTvS :: TyVarIdS _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Pred _lhsOself :: Pred _lhsOprImpls :: (AssocL ImplsVarId Impls) _seqOappSpinePos :: Int _seqOfxTvM :: TvCatMp _seqOisAtTop :: Bool _seqOisRow :: Bool _seqOmbPrLoc :: (Maybe Impls) _seqOpol :: Polarity _seqOprImpls :: (AssocL ImplsVarId Impls) _seqOprLL :: ([[PredOcc]]) _seqOqSurrTvS :: TyVarIdS _seqOtyCtxt :: TyQuCtxt _seqIfrTvSL :: ([TyVarIdS]) _seqIgathFxTvM :: TvCatMp _seqIinsPrIdSet :: (Set.Set PredOccId) _seqIinsPrL :: ([PredOcc]) _seqIprImpls :: (AssocL ImplsVarId Impls) _seqIprTy :: PredSeq _seqIprvReqs :: PrvReqs _seqIqInsideTvS :: TyVarIdS _seqIself :: PredSeq -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 138, column 33) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 72, column 17) _appSpinePos = 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _seqIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _seqIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _seqIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _seqIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _seqIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _seqIqInsideTvS -- self rule _prTy = Pred_Preds _seqIprTy -- self rule _self = Pred_Preds _seqIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _seqIprImpls -- copy rule (from local) _seqOappSpinePos = _appSpinePos -- copy rule (down) _seqOfxTvM = _lhsIfxTvM -- copy rule (down) _seqOisAtTop = _lhsIisAtTop -- copy rule (down) _seqOisRow = _lhsIisRow -- copy rule (down) _seqOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _seqOpol = _lhsIpol -- copy rule (down) _seqOprImpls = _lhsIprImpls -- copy rule (down) _seqOprLL = _lhsIprLL -- copy rule (down) _seqOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _seqOtyCtxt = _lhsItyCtxt ( _seqIfrTvSL,_seqIgathFxTvM,_seqIinsPrIdSet,_seqIinsPrL,_seqIprImpls,_seqIprTy,_seqIprvReqs,_seqIqInsideTvS,_seqIself) = seq_ _seqOappSpinePos _seqOfxTvM _seqOisAtTop _seqOisRow _seqOmbPrLoc _seqOpol _seqOprImpls _seqOprLL _seqOqSurrTvS _seqOtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) -- PredSeq ----------------------------------------------------- {- visit 0: inherited attributes: appSpinePos : Int fxTvM : TvCatMp isAtTop : Bool isRow : Bool mbPrLoc : Maybe Impls pol : Polarity prLL : [[PredOcc]] qSurrTvS : TyVarIdS tyCtxt : TyQuCtxt chained attribute: prImpls : AssocL ImplsVarId Impls synthesized attributes: frTvSL : [TyVarIdS] gathFxTvM : TvCatMp insPrIdSet : Set.Set PredOccId insPrL : [PredOcc] prTy : PredSeq prvReqs : PrvReqs qInsideTvS : TyVarIdS self : PredSeq alternatives: alternative Cons: child hd : Pred child tl : PredSeq visit 0: local isSpineRoot : {Bool} local prTy : _ local self : _ alternative Nil: visit 0: local prTy : _ local self : _ alternative Var: child av : {TyVarId} visit 0: local prTy : _ local self : _ -} -- cata sem_PredSeq :: PredSeq -> T_PredSeq sem_PredSeq (PredSeq_Cons _hd _tl) = (sem_PredSeq_Cons (sem_Pred _hd) (sem_PredSeq _tl)) sem_PredSeq (PredSeq_Nil) = (sem_PredSeq_Nil) sem_PredSeq (PredSeq_Var _av) = (sem_PredSeq_Var _av) -- semantic domain type T_PredSeq = Int -> TvCatMp -> Bool -> Bool -> (Maybe Impls) -> Polarity -> (AssocL ImplsVarId Impls) -> ([[PredOcc]]) -> TyVarIdS -> TyQuCtxt -> ( ([TyVarIdS]),TvCatMp,(Set.Set PredOccId),([PredOcc]),(AssocL ImplsVarId Impls),PredSeq,PrvReqs,TyVarIdS,PredSeq) sem_PredSeq_Cons :: T_Pred -> T_PredSeq -> T_PredSeq sem_PredSeq_Cons hd_ tl_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _tlOappSpinePos :: Int _isSpineRoot :: Bool _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: PredSeq _lhsOself :: PredSeq _lhsOprImpls :: (AssocL ImplsVarId Impls) _hdOfxTvM :: TvCatMp _hdOisAtTop :: Bool _hdOisRow :: Bool _hdOmbPrLoc :: (Maybe Impls) _hdOpol :: Polarity _hdOprImpls :: (AssocL ImplsVarId Impls) _hdOprLL :: ([[PredOcc]]) _hdOqSurrTvS :: TyVarIdS _hdOtyCtxt :: TyQuCtxt _tlOfxTvM :: TvCatMp _tlOisAtTop :: Bool _tlOisRow :: Bool _tlOmbPrLoc :: (Maybe Impls) _tlOpol :: Polarity _tlOprImpls :: (AssocL ImplsVarId Impls) _tlOprLL :: ([[PredOcc]]) _tlOqSurrTvS :: TyVarIdS _tlOtyCtxt :: TyQuCtxt _hdIfrTvSL :: ([TyVarIdS]) _hdIgathFxTvM :: TvCatMp _hdIinsPrIdSet :: (Set.Set PredOccId) _hdIinsPrL :: ([PredOcc]) _hdIprImpls :: (AssocL ImplsVarId Impls) _hdIprTy :: Pred _hdIprvReqs :: PrvReqs _hdIqInsideTvS :: TyVarIdS _hdIqOrphanTvS :: TyVarIdS _hdIself :: Pred _tlIfrTvSL :: ([TyVarIdS]) _tlIgathFxTvM :: TvCatMp _tlIinsPrIdSet :: (Set.Set PredOccId) _tlIinsPrL :: ([PredOcc]) _tlIprImpls :: (AssocL ImplsVarId Impls) _tlIprTy :: PredSeq _tlIprvReqs :: PrvReqs _tlIqInsideTvS :: TyVarIdS _tlIself :: PredSeq -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 75, column 17) _tlOappSpinePos = _lhsIappSpinePos + 1 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 87, column 17) _isSpineRoot = _lhsIappSpinePos == 0 -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _hdIfrTvSL ++ _tlIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _hdIgathFxTvM `Map.union` _tlIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _hdIinsPrIdSet `Set.union` _tlIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _hdIinsPrL ++ _tlIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _hdIprvReqs ++ _tlIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _hdIqInsideTvS `Set.union` _tlIqInsideTvS -- self rule _prTy = PredSeq_Cons _hdIprTy _tlIprTy -- self rule _self = PredSeq_Cons _hdIself _tlIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tlIprImpls -- copy rule (down) _hdOfxTvM = _lhsIfxTvM -- copy rule (down) _hdOisAtTop = _lhsIisAtTop -- copy rule (down) _hdOisRow = _lhsIisRow -- copy rule (down) _hdOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _hdOpol = _lhsIpol -- copy rule (down) _hdOprImpls = _lhsIprImpls -- copy rule (down) _hdOprLL = _lhsIprLL -- copy rule (down) _hdOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _hdOtyCtxt = _lhsItyCtxt -- copy rule (down) _tlOfxTvM = _lhsIfxTvM -- copy rule (down) _tlOisAtTop = _lhsIisAtTop -- copy rule (down) _tlOisRow = _lhsIisRow -- copy rule (down) _tlOmbPrLoc = _lhsImbPrLoc -- copy rule (down) _tlOpol = _lhsIpol -- copy rule (chain) _tlOprImpls = _hdIprImpls -- copy rule (down) _tlOprLL = _lhsIprLL -- copy rule (down) _tlOqSurrTvS = _lhsIqSurrTvS -- copy rule (down) _tlOtyCtxt = _lhsItyCtxt ( _hdIfrTvSL,_hdIgathFxTvM,_hdIinsPrIdSet,_hdIinsPrL,_hdIprImpls,_hdIprTy,_hdIprvReqs,_hdIqInsideTvS,_hdIqOrphanTvS,_hdIself) = hd_ _hdOfxTvM _hdOisAtTop _hdOisRow _hdOmbPrLoc _hdOpol _hdOprImpls _hdOprLL _hdOqSurrTvS _hdOtyCtxt ( _tlIfrTvSL,_tlIgathFxTvM,_tlIinsPrIdSet,_tlIinsPrL,_tlIprImpls,_tlIprTy,_tlIprvReqs,_tlIqInsideTvS,_tlIself) = tl_ _tlOappSpinePos _tlOfxTvM _tlOisAtTop _tlOisRow _tlOmbPrLoc _tlOpol _tlOprImpls _tlOprLL _tlOqSurrTvS _tlOtyCtxt in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOself))) sem_PredSeq_Nil :: T_PredSeq sem_PredSeq_Nil = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: PredSeq _lhsOself :: PredSeq _lhsOprImpls :: (AssocL ImplsVarId Impls) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = PredSeq_Nil -- self rule _self = PredSeq_Nil -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOself))) sem_PredSeq_Var :: TyVarId -> T_PredSeq sem_PredSeq_Var av_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: PredSeq _lhsOself :: PredSeq _lhsOprImpls :: (AssocL ImplsVarId Impls) -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = PredSeq_Var av_ -- self rule _self = PredSeq_Var av_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOself))) -- Ty ---------------------------------------------------------- {- visit 0: inherited attributes: appSpinePos : Int fxTvM : TvCatMp isAtTop : Bool isRow : Bool mbPrLoc : Maybe Impls pol : Polarity prLL : [[PredOcc]] qSurrTvS : TyVarIdS tyCtxt : TyQuCtxt chained attribute: prImpls : AssocL ImplsVarId Impls synthesized attributes: appFunNm : HsName frTvSL : [TyVarIdS] gathFxTvM : TvCatMp insPrIdSet : Set.Set PredOccId insPrL : [PredOcc] isArrow : Bool isPred : Bool isQuLoc : Bool mbImpls : Maybe Impls prTy : Ty prvReqs : PrvReqs qInsideTvS : TyVarIdS qOrphanTvS : TyVarIdS self : Ty alternatives: alternative Con: child nm : {HsName} visit 0: local frTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local prTy : _ local self : _ alternative App: child func : Ty child arg : Ty visit 0: local _tup1 : _ local frRowTvS : {TyVarIdS} local frTvSL : {[TyVarIdS]} local frTvS : {TyVarIdS} local polArrowRes : _ local isQuLoc : {Bool} local qHereTvS : {TyVarIdS} local qOrphanTvS : {TyVarIdS} local qSurrTvS : _ local appFunNm : {HsName} local appIsArrow : {Bool} local appIsOther : _ local appIsRec : {Bool} local appIsSum : _ local appIsRecOrSum : _ local appIsLikeProd : {Bool} local isAtTop : _ local argIsRow : {Bool} local isSpineRoot : {Bool} local isArrowRoot : {Bool} local isArrowArg : {Bool} local isProdRoot : _ local tyCtxt : _ local isQuLocExtraHook : _ local _tup2 : _ local implsPrL : _ local mbTail : _ local _tup3 : _ local herePrL : _ local candPrL : _ local _tup4 : _ local insHerePrL : _ local forPrTyOccL : _ local insPrIdSet : _ local prTy : _ local self : _ alternative Ann: child ann : TyAnn child ty : Ty visit 0: local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ alternative Dbg: child info : {String} visit 0: local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ alternative Any: visit 0: local frTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local prTy : _ local self : _ alternative Var: child tv : {TyVarId} child categ : TyVarCateg visit 0: local frTvS : {TyVarIdS} local isQuLoc : {Bool} local qHereTvS : _ local qSurrTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local implsPrL : _ local _tup5 : _ local herePrL : _ local candPrL : _ local _tup6 : _ local insHerePrL : _ local forPrTyOccL : _ local insPrIdSet : _ local prTy : _ local self : _ alternative TBind: child qu : TyQu child tv : {TyVarId} child l1 : {Ty} child ty : Ty visit 0: local frTvS : {TyVarIdS} local isQuLoc : {Bool} local qHereTvS : _ local qSurrTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local introTVarL : _ local introTVarS : {TyVarIdS} local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ alternative Ext: child ty : Ty child nm : {HsName} child extTy : Ty visit 0: local frTvSL : _ local qOrphanTvS : _ local appFunNm : {HsName} local isAtTop : _ local isRow : _ local isSpineRoot : _ local tyCtxt : _ local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ alternative Pred: child pr : Pred visit 0: local frTvS : {TyVarIdS} local isQuLoc : {Bool} local qHereTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ alternative Lam: child tv : {TyVarId} child ty : Ty visit 0: local frTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local introTVarL : _ local introTVarS : {TyVarIdS} local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ alternative Impls: child impls : Impls visit 0: local frTvS : _ local isAtTop : _ local isRow : _ local tyCtxt : _ local isQuLocExtraHook : _ local mbPrLoc : _ local prTy : _ local self : _ -} -- cata sem_Ty :: Ty -> T_Ty sem_Ty (Ty_Con _nm) = (sem_Ty_Con _nm) sem_Ty (Ty_App _func _arg) = (sem_Ty_App (sem_Ty _func) (sem_Ty _arg)) sem_Ty (Ty_Ann _ann _ty) = (sem_Ty_Ann (sem_TyAnn _ann) (sem_Ty _ty)) sem_Ty (Ty_Dbg _info) = (sem_Ty_Dbg _info) sem_Ty (Ty_Any) = (sem_Ty_Any) sem_Ty (Ty_Var _tv _categ) = (sem_Ty_Var _tv (sem_TyVarCateg _categ)) sem_Ty (Ty_TBind _qu _tv _l1 _ty) = (sem_Ty_TBind (sem_TyQu _qu) _tv _l1 (sem_Ty _ty)) sem_Ty (Ty_Ext _ty _nm _extTy) = (sem_Ty_Ext (sem_Ty _ty) _nm (sem_Ty _extTy)) sem_Ty (Ty_Pred _pr) = (sem_Ty_Pred (sem_Pred _pr)) sem_Ty (Ty_Lam _tv _ty) = (sem_Ty_Lam _tv (sem_Ty _ty)) sem_Ty (Ty_Impls _impls) = (sem_Ty_Impls (sem_Impls _impls)) -- semantic domain type T_Ty = Int -> TvCatMp -> Bool -> Bool -> (Maybe Impls) -> Polarity -> (AssocL ImplsVarId Impls) -> ([[PredOcc]]) -> TyVarIdS -> TyQuCtxt -> ( HsName,([TyVarIdS]),TvCatMp,(Set.Set PredOccId),([PredOcc]),Bool,Bool,Bool,(Maybe Impls),(AssocL ImplsVarId Impls),Ty,PrvReqs,TyVarIdS,TyVarIdS,Ty) sem_Ty_Con :: HsName -> T_Ty sem_Ty_Con nm_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOqOrphanTvS :: TyVarIdS _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 14, column 17) _frTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 17, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 129, column 17) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 4, column 17) _lhsOappFunNm = nm_ -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Ty_Con nm_ -- self rule _self = Ty_Con nm_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_App :: T_Ty -> T_Ty -> T_Ty sem_Ty_App func_ arg_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _frRowTvS :: TyVarIdS _frTvSL :: ([TyVarIdS]) _frTvS :: TyVarIdS _funcOpol :: Polarity _argOpol :: Polarity _isQuLoc :: Bool _lhsOisQuLoc :: Bool _qHereTvS :: TyVarIdS _qOrphanTvS :: TyVarIdS _lhsOqOrphanTvS :: TyVarIdS _lhsOqInsideTvS :: TyVarIdS _appFunNm :: HsName _appIsArrow :: Bool _appIsRec :: Bool _appIsLikeProd :: Bool _argIsRow :: Bool _argOisRow :: Bool _funcOappSpinePos :: Int _argOappSpinePos :: Int _isSpineRoot :: Bool _isArrowRoot :: Bool _isArrowArg :: Bool _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _argOmbPrLoc :: (Maybe Impls) _funcOmbPrLoc :: (Maybe Impls) _funcOprLL :: ([[PredOcc]]) _argOprLL :: ([[PredOcc]]) _lhsOinsPrL :: ([PredOcc]) _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOprvReqs :: PrvReqs _lhsOgathFxTvM :: TvCatMp _lhsOprTy :: Ty _lhsOself :: Ty _lhsOappFunNm :: HsName _funcOfxTvM :: TvCatMp _funcOisAtTop :: Bool _funcOisRow :: Bool _funcOprImpls :: (AssocL ImplsVarId Impls) _funcOqSurrTvS :: TyVarIdS _funcOtyCtxt :: TyQuCtxt _argOfxTvM :: TvCatMp _argOisAtTop :: Bool _argOprImpls :: (AssocL ImplsVarId Impls) _argOqSurrTvS :: TyVarIdS _argOtyCtxt :: TyQuCtxt _funcIappFunNm :: HsName _funcIfrTvSL :: ([TyVarIdS]) _funcIgathFxTvM :: TvCatMp _funcIinsPrIdSet :: (Set.Set PredOccId) _funcIinsPrL :: ([PredOcc]) _funcIisArrow :: Bool _funcIisPred :: Bool _funcIisQuLoc :: Bool _funcImbImpls :: (Maybe Impls) _funcIprImpls :: (AssocL ImplsVarId Impls) _funcIprTy :: Ty _funcIprvReqs :: PrvReqs _funcIqInsideTvS :: TyVarIdS _funcIqOrphanTvS :: TyVarIdS _funcIself :: Ty _argIappFunNm :: HsName _argIfrTvSL :: ([TyVarIdS]) _argIgathFxTvM :: TvCatMp _argIinsPrIdSet :: (Set.Set PredOccId) _argIinsPrL :: ([PredOcc]) _argIisArrow :: Bool _argIisPred :: Bool _argIisQuLoc :: Bool _argImbImpls :: (Maybe Impls) _argIprImpls :: (AssocL ImplsVarId Impls) _argIprTy :: Ty _argIprvReqs :: PrvReqs _argIqInsideTvS :: TyVarIdS _argIqOrphanTvS :: TyVarIdS _argIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 10, column 17) _lhsOfrTvSL = if _isSpineRoot then [_frTvS] else _frTvSL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 23, column 17) __tup1 = if _argIsRow then hdAndTl (reverse _argIfrTvSL) else (Set.empty,_argIfrTvSL ++ _funcIfrTvSL) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 23, column 17) (_frRowTvS,_) = __tup1 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 23, column 17) (_,_frTvSL) = __tup1 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 26, column 17) _frTvS = Set.unions (_frRowTvS : _frTvSL) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 44, column 17) _funcOpol = _lhsIpol -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 45, column 17) _argOpol = if _appIsLikeProd then _lhsIpol else if _isArrowRoot then _polArrowRes else if _isArrowArg then polContravariant else polInvariant -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 49, column 17) _polArrowRes = if _funcIisPred then _lhsIpol else polCovariant -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 64, column 17) _isQuLoc = ( polIsCovariant _lhsIpol || (polIsContravariant _lhsIpol && (_isProdRoot || _isArrowRoot && (not _funcIisPred || _argIisQuLoc) ) ) ) && _isQuLocExtraHook -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 71, column 17) _lhsOisQuLoc = if _isArrowArg then _argIisQuLoc else _isQuLoc -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 103, column 17) _qHereTvS = if _isQuLoc then if _appIsArrow || _appIsLikeProd then Set.unions [tvarSOccurGE2 _frTvSL, _frRowTvS, _qOrphanTvS] else _frTvS else Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 120, column 17) _qOrphanTvS = _argIqOrphanTvS `Set.union` _funcIqOrphanTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 124, column 17) _lhsOqOrphanTvS = if _isSpineRoot && _isQuLoc then Set.empty else _qOrphanTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 143, column 17) _lhsOqInsideTvS = _qHereTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 152, column 17) _qSurrTvS = _qHereTvS `Set.union` _lhsIqSurrTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 5, column 17) _appFunNm = _funcIappFunNm -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 16, column 17) _appIsArrow = hsnIsArrow _funcIappFunNm -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 16, column 17) _appIsOther = not (_appIsArrow || _appIsLikeProd) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 21, column 17) _appIsRec = hsnIsRec _funcIappFunNm -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 21, column 17) _appIsSum = hsnIsSum _funcIappFunNm -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 21, column 17) _appIsRecOrSum = _appIsRec || _appIsSum -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 21, column 17) _appIsLikeProd = hsnIsProd _funcIappFunNm || _appIsRec -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 45, column 17) _argIsRow = _isSpineRoot && _appIsRecOrSum -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 46, column 17) _argOisRow = _argIsRow -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 61, column 17) _funcOappSpinePos = _lhsIappSpinePos + 1 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 62, column 17) _argOappSpinePos = 0 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 84, column 17) _isSpineRoot = _lhsIappSpinePos == 0 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 90, column 17) _isArrowRoot = _appIsArrow && _isSpineRoot -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 90, column 17) _isArrowArg = _appIsArrow && _lhsIappSpinePos == 1 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 90, column 17) _isProdRoot = _appIsLikeProd && _isSpineRoot -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 97, column 17) _lhsOisArrow = _isArrowRoot -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 103, column 17) _tyCtxt = if _appIsArrow then TyQuCtxtArrow else if _appIsLikeProd then TyQuCtxtProd else TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 115, column 17) _lhsOisPred = if _isArrowArg then _argIisPred else False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 84, column 17) _lhsOmbImpls = if _isArrowArg then _argImbImpls else Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 94, column 33) __tup2 = maybe ([],Nothing) implsPredsMbTail _funcImbImpls -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 94, column 33) (_implsPrL,_) = __tup2 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 94, column 33) (_,_mbTail) = __tup2 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 95, column 17) _argOmbPrLoc = _mbTail -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 96, column 17) _funcOmbPrLoc = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 112, column 17) __tup3 = if _isSpineRoot then if _appIsArrow then let (h,r) = prLLArrowSplit (_frTvSL !! 1 `Set.union` _lhsIqSurrTvS) _lhsIprLL in (h,[],r) else let (h,_) = prLLArrowSplit (_frTvS `Set.union` _lhsIqSurrTvS) _lhsIprLL in (h,[],[]) else ([],[],[]) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 112, column 17) (_herePrL,_,_) = __tup3 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 112, column 17) (_,_funcOprLL,_) = __tup3 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 112, column 17) (_,_,_argOprLL) = __tup3 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 128, column 17) _candPrL = _herePrL ++ _funcIinsPrL ++ _argIinsPrL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 130, column 17) __tup4 = case _lhsImbPrLoc of Just (Impls_Tail _ ipos) -> (toInsPrPrvOcc _candPrL ipos,[]) _ -> ([],_candPrL) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 130, column 17) (_insHerePrL,_) = __tup4 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 130, column 17) (_,_lhsOinsPrL) = __tup4 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 134, column 17) _forPrTyOccL = _implsPrL ++ _insHerePrL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 139, column 17) _insPrIdSet = Set.fromList (map (poPoi . fst) _insHerePrL) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 140, column 17) _lhsOinsPrIdSet = _insPrIdSet `Set.union` _funcIinsPrIdSet `Set.union` _argIinsPrIdSet -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 162, column 17) _lhsOprImpls = prOccLImpls _lhsImbPrLoc _insHerePrL ++ _argIprImpls -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 173, column 17) _lhsOprvReqs = prOccLPrvReqs _lhsImbPrLoc _insHerePrL ++ _funcIprvReqs ++ _argIprvReqs -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 181, column 17) _prTy = mkTyImpls (map (poPr . fst) _forPrTyOccL) $ maybe (Ty_App _funcIprTy _argIprTy) (const _argIprTy) _funcImbImpls -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _funcIgathFxTvM `Map.union` _argIgathFxTvM -- self rule _self = Ty_App _funcIself _argIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (from local) _lhsOappFunNm = _appFunNm -- copy rule (down) _funcOfxTvM = _lhsIfxTvM -- copy rule (from local) _funcOisAtTop = _isAtTop -- copy rule (down) _funcOisRow = _lhsIisRow -- copy rule (down) _funcOprImpls = _lhsIprImpls -- copy rule (from local) _funcOqSurrTvS = _qSurrTvS -- copy rule (from local) _funcOtyCtxt = _tyCtxt -- copy rule (down) _argOfxTvM = _lhsIfxTvM -- copy rule (from local) _argOisAtTop = _isAtTop -- copy rule (chain) _argOprImpls = _funcIprImpls -- copy rule (from local) _argOqSurrTvS = _qSurrTvS -- copy rule (from local) _argOtyCtxt = _tyCtxt ( _funcIappFunNm,_funcIfrTvSL,_funcIgathFxTvM,_funcIinsPrIdSet,_funcIinsPrL,_funcIisArrow,_funcIisPred,_funcIisQuLoc,_funcImbImpls,_funcIprImpls,_funcIprTy,_funcIprvReqs,_funcIqInsideTvS,_funcIqOrphanTvS,_funcIself) = func_ _funcOappSpinePos _funcOfxTvM _funcOisAtTop _funcOisRow _funcOmbPrLoc _funcOpol _funcOprImpls _funcOprLL _funcOqSurrTvS _funcOtyCtxt ( _argIappFunNm,_argIfrTvSL,_argIgathFxTvM,_argIinsPrIdSet,_argIinsPrL,_argIisArrow,_argIisPred,_argIisQuLoc,_argImbImpls,_argIprImpls,_argIprTy,_argIprvReqs,_argIqInsideTvS,_argIqOrphanTvS,_argIself) = arg_ _argOappSpinePos _argOfxTvM _argOisAtTop _argOisRow _argOmbPrLoc _argOpol _argOprImpls _argOprLL _argOqSurrTvS _argOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Ann :: T_TyAnn -> T_Ty -> T_Ty sem_Ty_Ann ann_ ty_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOqOrphanTvS :: TyVarIdS _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) _tyOappSpinePos :: Int _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOpol :: Polarity _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _annIprTy :: TyAnn _annIself :: TyAnn _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 129, column 17) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _tyIfrTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = _tyIisQuLoc -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS -- self rule _prTy = Ty_Ann _annIprTy _tyIprTy -- self rule _self = Ty_Ann _annIself _tyIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (down) _tyOappSpinePos = _lhsIappSpinePos -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (from local) _tyOisAtTop = _isAtTop -- copy rule (from local) _tyOisRow = _isRow -- copy rule (from local) _tyOmbPrLoc = _mbPrLoc -- copy rule (down) _tyOpol = _lhsIpol -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (down) _tyOqSurrTvS = _lhsIqSurrTvS -- copy rule (from local) _tyOtyCtxt = _tyCtxt ( _annIprTy,_annIself) = ann_ ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Dbg :: String -> T_Ty sem_Ty_Dbg info_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOqOrphanTvS :: TyVarIdS _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 129, column 17) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Ty_Dbg info_ -- self rule _self = Ty_Dbg info_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Any :: T_Ty sem_Ty_Any = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOqOrphanTvS :: TyVarIdS _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 14, column 17) _frTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 17, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 129, column 17) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = Map.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = Set.empty -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Ty_Any -- self rule _self = Ty_Any -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (chain) _lhsOprImpls = _lhsIprImpls in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Var :: TyVarId -> T_TyVarCateg -> T_Ty sem_Ty_Var tv_ categ_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _frTvS :: TyVarIdS _lhsOfrTvSL :: ([TyVarIdS]) _isQuLoc :: Bool _lhsOqOrphanTvS :: TyVarIdS _lhsOgathFxTvM :: TvCatMp _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOinsPrL :: ([PredOcc]) _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOprvReqs :: PrvReqs _lhsOprTy :: Ty _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOisQuLoc :: Bool _lhsOqInsideTvS :: TyVarIdS _lhsOself :: Ty _categIprTy :: TyVarCateg _categIself :: TyVarCateg -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 7, column 17) _frTvS = if tvCatIsPlain _categIself then Set.singleton tv_ else Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 17, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 62, column 17) _isQuLoc = polIsCovariant _lhsIpol && _isQuLocExtraHook -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 92, column 17) _qHereTvS = if _isQuLoc then _frTvS else Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 125, column 17) _lhsOqOrphanTvS = if _isQuLoc then Set.empty else _frTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 152, column 17) _qSurrTvS = _qHereTvS `Set.union` _lhsIqSurrTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 158, column 17) _lhsOgathFxTvM = tv_ `Map.singleton` mkTvInfoTy _categIself -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 97, column 17) _implsPrL = [] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 111, column 33) __tup5 = prLLArrowSplit _qSurrTvS _lhsIprLL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 111, column 33) (_herePrL,_) = __tup5 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 129, column 17) _candPrL = _herePrL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 130, column 17) __tup6 = case _lhsImbPrLoc of Just (Impls_Tail _ ipos) -> (toInsPrPrvOcc _candPrL ipos,[]) _ -> ([],_candPrL) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 130, column 17) (_insHerePrL,_) = __tup6 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 130, column 17) (_,_lhsOinsPrL) = __tup6 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 134, column 17) _forPrTyOccL = _implsPrL ++ _insHerePrL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 139, column 17) _insPrIdSet = Set.fromList (map (poPoi . fst) _insHerePrL) -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 163, column 17) _lhsOprImpls = prOccLImpls _lhsImbPrLoc _insHerePrL ++ _lhsIprImpls -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 174, column 17) _lhsOprvReqs = prOccLPrvReqs _lhsImbPrLoc _insHerePrL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 180, column 17) _lhsOprTy = mkTyImpls (map (poPr . fst) _forPrTyOccL) $ Ty_Var tv_ _categIprTy -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _insPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = _isQuLoc -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = Set.empty -- self rule _prTy = Ty_Var tv_ _categIprTy -- self rule _self = Ty_Var tv_ _categIself -- self rule _lhsOself = _self ( _categIprTy,_categIself) = categ_ in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_TBind :: T_TyQu -> TyVarId -> Ty -> T_Ty -> T_Ty sem_Ty_TBind qu_ tv_ l1_ ty_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _frTvS :: TyVarIdS _lhsOfrTvSL :: ([TyVarIdS]) _isQuLoc :: Bool _lhsOqOrphanTvS :: TyVarIdS _lhsOappFunNm :: HsName _tyOappSpinePos :: Int _lhsOisArrow :: Bool _lhsOisPred :: Bool _introTVarS :: TyVarIdS _lhsOmbImpls :: (Maybe Impls) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOpol :: Polarity _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _quIprTy :: TyQu _quIself :: TyQu _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 13, column 17) _frTvS = head _tyIfrTvSL `Set.difference` _introTVarS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 17, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 63, column 17) _isQuLoc = not (polIsInvariant _lhsIpol) && _isQuLocExtraHook -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 92, column 17) _qHereTvS = if _isQuLoc then _frTvS else Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 129, column 17) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 152, column 17) _qSurrTvS = _qHereTvS `Set.union` _lhsIqSurrTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 65, column 17) _tyOappSpinePos = 0 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 130, column 17) _introTVarL = [tv_] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 130, column 17) _introTVarS = Set.singleton tv_ -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = _isQuLoc -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS -- self rule _prTy = Ty_TBind _quIprTy tv_ l1_ _tyIprTy -- self rule _self = Ty_TBind _quIself tv_ l1_ _tyIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (from local) _tyOisAtTop = _isAtTop -- copy rule (from local) _tyOisRow = _isRow -- copy rule (from local) _tyOmbPrLoc = _mbPrLoc -- copy rule (down) _tyOpol = _lhsIpol -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (from local) _tyOqSurrTvS = _qSurrTvS -- copy rule (from local) _tyOtyCtxt = _tyCtxt ( _quIprTy,_quIself) = qu_ ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Ext :: T_Ty -> HsName -> T_Ty -> T_Ty sem_Ty_Ext ty_ nm_ extTy_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _appFunNm :: HsName _tyOappSpinePos :: Int _extTyOappSpinePos :: Int _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOfrTvSL :: ([TyVarIdS]) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOappFunNm :: HsName _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOpol :: Polarity _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _extTyOfxTvM :: TvCatMp _extTyOisAtTop :: Bool _extTyOisRow :: Bool _extTyOmbPrLoc :: (Maybe Impls) _extTyOpol :: Polarity _extTyOprImpls :: (AssocL ImplsVarId Impls) _extTyOprLL :: ([[PredOcc]]) _extTyOqSurrTvS :: TyVarIdS _extTyOtyCtxt :: TyQuCtxt _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty _extTyIappFunNm :: HsName _extTyIfrTvSL :: ([TyVarIdS]) _extTyIgathFxTvM :: TvCatMp _extTyIinsPrIdSet :: (Set.Set PredOccId) _extTyIinsPrL :: ([PredOcc]) _extTyIisArrow :: Bool _extTyIisPred :: Bool _extTyIisQuLoc :: Bool _extTyImbImpls :: (Maybe Impls) _extTyIprImpls :: (AssocL ImplsVarId Impls) _extTyIprTy :: Ty _extTyIprvReqs :: PrvReqs _extTyIqInsideTvS :: TyVarIdS _extTyIqOrphanTvS :: TyVarIdS _extTyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 20, column 17) _frTvSL = _extTyIfrTvSL ++ _tyIfrTvSL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 121, column 17) _qOrphanTvS = _extTyIqOrphanTvS `Set.union` _tyIqOrphanTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 8, column 17) _appFunNm = _tyIappFunNm -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 68, column 17) _tyOappSpinePos = _lhsIappSpinePos + 1 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 69, column 17) _extTyOappSpinePos = 0 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 84, column 17) _isSpineRoot = _lhsIappSpinePos == 0 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 1, column 25) _lhsOfrTvSL = _frTvSL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM `Map.union` _extTyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet `Set.union` _extTyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL ++ _extTyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = _tyIisQuLoc && _extTyIisQuLoc -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs ++ _extTyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS `Set.union` _extTyIqInsideTvS -- self rule _prTy = Ty_Ext _tyIprTy nm_ _extTyIprTy -- self rule _self = Ty_Ext _tyIself nm_ _extTyIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (from local) _lhsOappFunNm = _appFunNm -- copy rule (up) _lhsOprImpls = _extTyIprImpls -- copy rule (from local) _lhsOqOrphanTvS = _qOrphanTvS -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (from local) _tyOisAtTop = _isAtTop -- copy rule (from local) _tyOisRow = _isRow -- copy rule (from local) _tyOmbPrLoc = _mbPrLoc -- copy rule (down) _tyOpol = _lhsIpol -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (down) _tyOqSurrTvS = _lhsIqSurrTvS -- copy rule (from local) _tyOtyCtxt = _tyCtxt -- copy rule (down) _extTyOfxTvM = _lhsIfxTvM -- copy rule (from local) _extTyOisAtTop = _isAtTop -- copy rule (from local) _extTyOisRow = _isRow -- copy rule (from local) _extTyOmbPrLoc = _mbPrLoc -- copy rule (down) _extTyOpol = _lhsIpol -- copy rule (chain) _extTyOprImpls = _tyIprImpls -- copy rule (down) _extTyOprLL = _lhsIprLL -- copy rule (down) _extTyOqSurrTvS = _lhsIqSurrTvS -- copy rule (from local) _extTyOtyCtxt = _tyCtxt ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt ( _extTyIappFunNm,_extTyIfrTvSL,_extTyIgathFxTvM,_extTyIinsPrIdSet,_extTyIinsPrL,_extTyIisArrow,_extTyIisPred,_extTyIisQuLoc,_extTyImbImpls,_extTyIprImpls,_extTyIprTy,_extTyIprvReqs,_extTyIqInsideTvS,_extTyIqOrphanTvS,_extTyIself) = extTy_ _extTyOappSpinePos _extTyOfxTvM _extTyOisAtTop _extTyOisRow _extTyOmbPrLoc _extTyOpol _extTyOprImpls _extTyOprLL _extTyOqSurrTvS _extTyOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Pred :: T_Pred -> T_Ty sem_Ty_Pred pr_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _frTvS :: TyVarIdS _lhsOfrTvSL :: ([TyVarIdS]) _prOpol :: Polarity _isQuLoc :: Bool _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _prOfxTvM :: TvCatMp _prOisAtTop :: Bool _prOisRow :: Bool _prOmbPrLoc :: (Maybe Impls) _prOprImpls :: (AssocL ImplsVarId Impls) _prOprLL :: ([[PredOcc]]) _prOqSurrTvS :: TyVarIdS _prOtyCtxt :: TyQuCtxt _prIfrTvSL :: ([TyVarIdS]) _prIgathFxTvM :: TvCatMp _prIinsPrIdSet :: (Set.Set PredOccId) _prIinsPrL :: ([PredOcc]) _prIprImpls :: (AssocL ImplsVarId Impls) _prIprTy :: Pred _prIprvReqs :: PrvReqs _prIqInsideTvS :: TyVarIdS _prIqOrphanTvS :: TyVarIdS _prIself :: Pred -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 27, column 17) _frTvS = Set.unions _prIfrTvSL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 29, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 52, column 17) _prOpol = polInvariant -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 74, column 17) _isQuLoc = polIsCovariant _lhsIpol && _isQuLocExtraHook -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 108, column 17) _qHereTvS = _frTvS `Set.difference` _prIqInsideTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 114, column 17) _lhsOisPred = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _prIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _prIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _prIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = _isQuLoc -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _prIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _prIqInsideTvS -- self rule _prTy = Ty_Pred _prIprTy -- self rule _self = Ty_Pred _prIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _prIprImpls -- copy rule (up) _lhsOqOrphanTvS = _prIqOrphanTvS -- copy rule (down) _prOfxTvM = _lhsIfxTvM -- copy rule (from local) _prOisAtTop = _isAtTop -- copy rule (from local) _prOisRow = _isRow -- copy rule (from local) _prOmbPrLoc = _mbPrLoc -- copy rule (down) _prOprImpls = _lhsIprImpls -- copy rule (down) _prOprLL = _lhsIprLL -- copy rule (down) _prOqSurrTvS = _lhsIqSurrTvS -- copy rule (from local) _prOtyCtxt = _tyCtxt ( _prIfrTvSL,_prIgathFxTvM,_prIinsPrIdSet,_prIinsPrL,_prIprImpls,_prIprTy,_prIprvReqs,_prIqInsideTvS,_prIqOrphanTvS,_prIself) = pr_ _prOfxTvM _prOisAtTop _prOisRow _prOmbPrLoc _prOpol _prOprImpls _prOprLL _prOqSurrTvS _prOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Lam :: TyVarId -> T_Ty -> T_Ty sem_Ty_Lam tv_ ty_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOqOrphanTvS :: TyVarIdS _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _introTVarS :: TyVarIdS _lhsOmbImpls :: (Maybe Impls) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) _tyOappSpinePos :: Int _tyOfxTvM :: TvCatMp _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOmbPrLoc :: (Maybe Impls) _tyOpol :: Polarity _tyOprImpls :: (AssocL ImplsVarId Impls) _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyOtyCtxt :: TyQuCtxt _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 13, column 17) _frTvS = head _tyIfrTvSL `Set.difference` _introTVarS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 17, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 129, column 17) _lhsOqOrphanTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 117, column 17) _lhsOisPred = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 130, column 17) _introTVarL = [tv_] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 130, column 17) _introTVarS = Set.singleton tv_ -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 86, column 17) _lhsOmbImpls = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _tyIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _tyIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = _tyIisQuLoc -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _tyIqInsideTvS -- self rule _prTy = Ty_Lam tv_ _tyIprTy -- self rule _self = Ty_Lam tv_ _tyIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (down) _tyOappSpinePos = _lhsIappSpinePos -- copy rule (down) _tyOfxTvM = _lhsIfxTvM -- copy rule (from local) _tyOisAtTop = _isAtTop -- copy rule (from local) _tyOisRow = _isRow -- copy rule (from local) _tyOmbPrLoc = _mbPrLoc -- copy rule (down) _tyOpol = _lhsIpol -- copy rule (down) _tyOprImpls = _lhsIprImpls -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (down) _tyOqSurrTvS = _lhsIqSurrTvS -- copy rule (from local) _tyOtyCtxt = _tyCtxt ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) sem_Ty_Impls :: T_Impls -> T_Ty sem_Ty_Impls impls_ = (\ _lhsIappSpinePos _lhsIfxTvM _lhsIisAtTop _lhsIisRow _lhsImbPrLoc _lhsIpol _lhsIprImpls _lhsIprLL _lhsIqSurrTvS _lhsItyCtxt -> (let _lhsOfrTvSL :: ([TyVarIdS]) _lhsOappFunNm :: HsName _lhsOisArrow :: Bool _lhsOisPred :: Bool _lhsOmbImpls :: (Maybe Impls) _lhsOgathFxTvM :: TvCatMp _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOinsPrL :: ([PredOcc]) _lhsOisQuLoc :: Bool _lhsOprvReqs :: PrvReqs _lhsOqInsideTvS :: TyVarIdS _lhsOprTy :: Ty _lhsOself :: Ty _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOqOrphanTvS :: TyVarIdS _implsOfxTvM :: TvCatMp _implsOisAtTop :: Bool _implsOisRow :: Bool _implsOmbPrLoc :: (Maybe Impls) _implsOpol :: Polarity _implsOprImpls :: (AssocL ImplsVarId Impls) _implsOprLL :: ([[PredOcc]]) _implsOqSurrTvS :: TyVarIdS _implsOtyCtxt :: TyQuCtxt _implsIfrTvSL :: ([TyVarIdS]) _implsIgathFxTvM :: TvCatMp _implsIinsPrIdSet :: (Set.Set PredOccId) _implsIinsPrL :: ([PredOcc]) _implsIprImpls :: (AssocL ImplsVarId Impls) _implsIprTy :: Impls _implsIprvReqs :: PrvReqs _implsIqInsideTvS :: TyVarIdS _implsIqOrphanTvS :: TyVarIdS _implsIself :: Impls -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 28, column 17) _frTvS = Set.unions _implsIfrTvSL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 29, column 17) _lhsOfrTvSL = [_frTvS] -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 10, column 17) _lhsOappFunNm = hsnUnknown -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 37, column 17) _isAtTop = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 47, column 17) _isRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 98, column 17) _lhsOisArrow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 106, column 17) _tyCtxt = TyQuCtxtOther -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 114, column 17) _lhsOisPred = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 73, column 17) _isQuLocExtraHook = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 83, column 17) _lhsOmbImpls = Just _implsIprTy -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 99, column 17) _mbPrLoc = Nothing -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 154, column 28) _lhsOgathFxTvM = _implsIgathFxTvM -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _implsIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 125, column 25) _lhsOinsPrL = _implsIinsPrL -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 59, column 23) _lhsOisQuLoc = False -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _implsIprvReqs -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 140, column 29) _lhsOqInsideTvS = _implsIqInsideTvS -- self rule _prTy = Ty_Impls _implsIprTy -- self rule _self = Ty_Impls _implsIself -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self -- copy rule (up) _lhsOprImpls = _implsIprImpls -- copy rule (up) _lhsOqOrphanTvS = _implsIqOrphanTvS -- copy rule (down) _implsOfxTvM = _lhsIfxTvM -- copy rule (from local) _implsOisAtTop = _isAtTop -- copy rule (from local) _implsOisRow = _isRow -- copy rule (from local) _implsOmbPrLoc = _mbPrLoc -- copy rule (down) _implsOpol = _lhsIpol -- copy rule (down) _implsOprImpls = _lhsIprImpls -- copy rule (down) _implsOprLL = _lhsIprLL -- copy rule (down) _implsOqSurrTvS = _lhsIqSurrTvS -- copy rule (from local) _implsOtyCtxt = _tyCtxt ( _implsIfrTvSL,_implsIgathFxTvM,_implsIinsPrIdSet,_implsIinsPrL,_implsIprImpls,_implsIprTy,_implsIprvReqs,_implsIqInsideTvS,_implsIqOrphanTvS,_implsIself) = impls_ _implsOfxTvM _implsOisAtTop _implsOisRow _implsOmbPrLoc _implsOpol _implsOprImpls _implsOprLL _implsOqSurrTvS _implsOtyCtxt in ( _lhsOappFunNm,_lhsOfrTvSL,_lhsOgathFxTvM,_lhsOinsPrIdSet,_lhsOinsPrL,_lhsOisArrow,_lhsOisPred,_lhsOisQuLoc,_lhsOmbImpls,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs,_lhsOqInsideTvS,_lhsOqOrphanTvS,_lhsOself))) -- TyAGItf ----------------------------------------------------- {- visit 0: inherited attribute: prLL : [[PredOcc]] synthesized attributes: insPrIdSet : Set.Set PredOccId prImpls : AssocL ImplsVarId Impls prTy : Ty prvReqs : PrvReqs alternatives: alternative AGItf: child ty : Ty visit 0: local frTvS : _ local qHereTvS : _ local qSurrTvS : _ local fxTvM : _ -} -- cata sem_TyAGItf :: TyAGItf -> T_TyAGItf sem_TyAGItf (TyAGItf_AGItf _ty) = (sem_TyAGItf_AGItf (sem_Ty _ty)) -- semantic domain type T_TyAGItf = ([[PredOcc]]) -> ( (Set.Set PredOccId),(AssocL ImplsVarId Impls),Ty,PrvReqs) data Inh_TyAGItf = Inh_TyAGItf {prLL_Inh_TyAGItf :: !(([[PredOcc]]))} data Syn_TyAGItf = Syn_TyAGItf {insPrIdSet_Syn_TyAGItf :: !((Set.Set PredOccId)),prImpls_Syn_TyAGItf :: !((AssocL ImplsVarId Impls)),prTy_Syn_TyAGItf :: !(Ty),prvReqs_Syn_TyAGItf :: !(PrvReqs)} wrap_TyAGItf :: T_TyAGItf -> Inh_TyAGItf -> Syn_TyAGItf wrap_TyAGItf sem (Inh_TyAGItf _lhsIprLL) = (let ( _lhsOinsPrIdSet,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs) = sem _lhsIprLL in (Syn_TyAGItf _lhsOinsPrIdSet _lhsOprImpls _lhsOprTy _lhsOprvReqs)) sem_TyAGItf_AGItf :: T_Ty -> T_TyAGItf sem_TyAGItf_AGItf ty_ = (\ _lhsIprLL -> (let _tyOisAtTop :: Bool _tyOisRow :: Bool _tyOappSpinePos :: Int _tyOtyCtxt :: TyQuCtxt _tyOpol :: Polarity _tyOmbPrLoc :: (Maybe Impls) _tyOprImpls :: (AssocL ImplsVarId Impls) _lhsOinsPrIdSet :: (Set.Set PredOccId) _lhsOprvReqs :: PrvReqs _lhsOprImpls :: (AssocL ImplsVarId Impls) _lhsOprTy :: Ty _tyOfxTvM :: TvCatMp _tyOprLL :: ([[PredOcc]]) _tyOqSurrTvS :: TyVarIdS _tyIappFunNm :: HsName _tyIfrTvSL :: ([TyVarIdS]) _tyIgathFxTvM :: TvCatMp _tyIinsPrIdSet :: (Set.Set PredOccId) _tyIinsPrL :: ([PredOcc]) _tyIisArrow :: Bool _tyIisPred :: Bool _tyIisQuLoc :: Bool _tyImbImpls :: (Maybe Impls) _tyIprImpls :: (AssocL ImplsVarId Impls) _tyIprTy :: Ty _tyIprvReqs :: PrvReqs _tyIqInsideTvS :: TyVarIdS _tyIqOrphanTvS :: TyVarIdS _tyIself :: Ty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 4, column 17) _frTvS = head _tyIfrTvSL -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 89, column 17) _qHereTvS = Set.empty -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 148, column 17) _qSurrTvS = _qHereTvS -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/TyVarCommon.ag"(line 161, column 17) _fxTvM = _tyIgathFxTvM -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 34, column 17) _tyOisAtTop = True -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 42, column 17) _tyOisRow = False -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 58, column 17) _tyOappSpinePos = 0 -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/CommonAG.ag"(line 109, column 17) _tyOtyCtxt = TyQuCtxtOnTop -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 77, column 17) _tyOpol = polCovariant -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 91, column 17) _tyOmbPrLoc = Nothing -- "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 159, column 17) _tyOprImpls = [] -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 136, column 37) _lhsOinsPrIdSet = _tyIinsPrIdSet -- use rule "build/103/lib-ehc/UHC/Light/Compiler/Ty/Trf/MergePreds.ag"(line 170, column 34) _lhsOprvReqs = _tyIprvReqs -- copy rule (up) _lhsOprImpls = _tyIprImpls -- copy rule (up) _lhsOprTy = _tyIprTy -- copy rule (from local) _tyOfxTvM = _fxTvM -- copy rule (down) _tyOprLL = _lhsIprLL -- copy rule (from local) _tyOqSurrTvS = _qSurrTvS ( _tyIappFunNm,_tyIfrTvSL,_tyIgathFxTvM,_tyIinsPrIdSet,_tyIinsPrL,_tyIisArrow,_tyIisPred,_tyIisQuLoc,_tyImbImpls,_tyIprImpls,_tyIprTy,_tyIprvReqs,_tyIqInsideTvS,_tyIqOrphanTvS,_tyIself) = ty_ _tyOappSpinePos _tyOfxTvM _tyOisAtTop _tyOisRow _tyOmbPrLoc _tyOpol _tyOprImpls _tyOprLL _tyOqSurrTvS _tyOtyCtxt in ( _lhsOinsPrIdSet,_lhsOprImpls,_lhsOprTy,_lhsOprvReqs))) -- TyAnn ------------------------------------------------------- {- visit 0: synthesized attributes: prTy : TyAnn self : TyAnn alternatives: alternative Empty: visit 0: local prTy : _ local self : _ alternative Strictness: child s : {Strictness} visit 0: local prTy : _ local self : _ alternative Mono: visit 0: local prTy : _ local self : _ -} -- cata sem_TyAnn :: TyAnn -> T_TyAnn sem_TyAnn (TyAnn_Empty) = (sem_TyAnn_Empty) sem_TyAnn (TyAnn_Strictness _s) = (sem_TyAnn_Strictness _s) sem_TyAnn (TyAnn_Mono) = (sem_TyAnn_Mono) -- semantic domain type T_TyAnn = ( TyAnn,TyAnn) sem_TyAnn_Empty :: T_TyAnn sem_TyAnn_Empty = (let _lhsOprTy :: TyAnn _lhsOself :: TyAnn -- self rule _prTy = TyAnn_Empty -- self rule _self = TyAnn_Empty -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_TyAnn_Strictness :: Strictness -> T_TyAnn sem_TyAnn_Strictness s_ = (let _lhsOprTy :: TyAnn _lhsOself :: TyAnn -- self rule _prTy = TyAnn_Strictness s_ -- self rule _self = TyAnn_Strictness s_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_TyAnn_Mono :: T_TyAnn sem_TyAnn_Mono = (let _lhsOprTy :: TyAnn _lhsOself :: TyAnn -- self rule _prTy = TyAnn_Mono -- self rule _self = TyAnn_Mono -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) -- TyQu -------------------------------------------------------- {- visit 0: synthesized attributes: prTy : TyQu self : TyQu alternatives: alternative Forall: child mlev : {MetaLev} visit 0: local prTy : _ local self : _ alternative Exists: child mlev : {MetaLev} visit 0: local prTy : _ local self : _ alternative Plain: child mlev : {MetaLev} visit 0: local prTy : _ local self : _ -} -- cata sem_TyQu :: TyQu -> T_TyQu sem_TyQu (TyQu_Forall _mlev) = (sem_TyQu_Forall _mlev) sem_TyQu (TyQu_Exists _mlev) = (sem_TyQu_Exists _mlev) sem_TyQu (TyQu_Plain _mlev) = (sem_TyQu_Plain _mlev) -- semantic domain type T_TyQu = ( TyQu,TyQu) sem_TyQu_Forall :: MetaLev -> T_TyQu sem_TyQu_Forall mlev_ = (let _lhsOprTy :: TyQu _lhsOself :: TyQu -- self rule _prTy = TyQu_Forall mlev_ -- self rule _self = TyQu_Forall mlev_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_TyQu_Exists :: MetaLev -> T_TyQu sem_TyQu_Exists mlev_ = (let _lhsOprTy :: TyQu _lhsOself :: TyQu -- self rule _prTy = TyQu_Exists mlev_ -- self rule _self = TyQu_Exists mlev_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_TyQu_Plain :: MetaLev -> T_TyQu sem_TyQu_Plain mlev_ = (let _lhsOprTy :: TyQu _lhsOself :: TyQu -- self rule _prTy = TyQu_Plain mlev_ -- self rule _self = TyQu_Plain mlev_ -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) -- TyVarCateg -------------------------------------------------- {- visit 0: synthesized attributes: prTy : TyVarCateg self : TyVarCateg alternatives: alternative Plain: visit 0: local prTy : _ local self : _ alternative Fixed: visit 0: local prTy : _ local self : _ alternative Meta: visit 0: local prTy : _ local self : _ -} -- cata sem_TyVarCateg :: TyVarCateg -> T_TyVarCateg sem_TyVarCateg (TyVarCateg_Plain) = (sem_TyVarCateg_Plain) sem_TyVarCateg (TyVarCateg_Fixed) = (sem_TyVarCateg_Fixed) sem_TyVarCateg (TyVarCateg_Meta) = (sem_TyVarCateg_Meta) -- semantic domain type T_TyVarCateg = ( TyVarCateg,TyVarCateg) sem_TyVarCateg_Plain :: T_TyVarCateg sem_TyVarCateg_Plain = (let _lhsOprTy :: TyVarCateg _lhsOself :: TyVarCateg -- self rule _prTy = TyVarCateg_Plain -- self rule _self = TyVarCateg_Plain -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_TyVarCateg_Fixed :: T_TyVarCateg sem_TyVarCateg_Fixed = (let _lhsOprTy :: TyVarCateg _lhsOself :: TyVarCateg -- self rule _prTy = TyVarCateg_Fixed -- self rule _self = TyVarCateg_Fixed -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself)) sem_TyVarCateg_Meta :: T_TyVarCateg sem_TyVarCateg_Meta = (let _lhsOprTy :: TyVarCateg _lhsOself :: TyVarCateg -- self rule _prTy = TyVarCateg_Meta -- self rule _self = TyVarCateg_Meta -- self rule _lhsOprTy = _prTy -- self rule _lhsOself = _self in ( _lhsOprTy,_lhsOself))