Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
type family InterpretVar (t :: TyVar d k) (tys :: LoT d) :: k where ... Source #
InterpretVar VZ tys = HeadLoT tys | |
InterpretVar (VS v) tys = InterpretVar v (TailLoT tys) |
type family Satisfies (cs :: [Atom d Constraint]) (tys :: LoT d) :: Constraint where ... Source #
type family ContainsTyVar (v :: TyVar d k) (t :: Atom d p) :: Bool where ... Source #
ContainsTyVar v (Var v) = True | |
ContainsTyVar v (Var w) = False | |
ContainsTyVar v (Kon t) = False | |
ContainsTyVar v (f :@: x) = Or (ContainsTyVar v f) (ContainsTyVar v x) | |
ContainsTyVar v (x :&: y) = Or (ContainsTyVar v x) (ContainsTyVar v y) | |
ContainsTyVar v (c :=>>: f) = Or (ContainsTyVar v c) (ContainsTyVar v f) | |
ContainsTyVar v (ForAll f) = ContainsTyVar (VS v) f |