| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Language.Expression.Scope
Synopsis
- class HBound k where
- data BV g f a where
- foldBV :: (w a -> r) -> (v a -> r) -> BV w v a -> r
- hbitraverseBV :: Functor t => (g a -> t (g' b)) -> (f a -> t (f' b)) -> BV g f a -> t (BV g' f' b)
- hbimapBV :: (g a -> g' b) -> (f a -> f' b) -> BV g f a -> BV g' f' b
- newtype Scope g h f a = Scope {}
- _Scope :: Iso (Scope g h f a) (Scope g' h' f' a') (h (BV g (h f)) a) (h' (BV g' (h' f')) a')
- hbitraverseScope :: (Applicative t, HTraversable h) => (forall b. g b -> t (g' b)) -> (forall b. f b -> t (f' b)) -> Scope g h f a -> t (Scope g' h f' a)
- freeVar :: HPointed h => f a -> Scope g h f a
- boundVar :: HPointed h => g a -> Scope g h f a
- liftScope :: (HFunctor h, HPointed h) => h f a -> Scope g h f a
- abstractTraverse :: (HMonad h, HTraversable h, Applicative t) => (forall b. f b -> t (Maybe (g b))) -> h f a -> t (Scope g h f a)
- abstract :: HMonad h => (forall b. f b -> Maybe (g b)) -> h f a -> Scope g h f a
- newtype Scoped h f g a = Scoped {}
- _Scoped :: Iso (Scoped h f g a) (Scoped h' f' g' a') (Scope g h f a) (Scope g' h' f' a')
- data SFree h f a
Documentation
Instances
| HBifoldableAt (k2 :: k1 -> Type) (BV :: (k1 -> Type) -> (k1 -> Type) -> k1 -> Type) Source # | |
Defined in Language.Expression.Scope Methods hbifoldMap :: (forall (b :: k). f b -> k2 b) -> (forall (b :: k). g b -> k2 b) -> BV f g a -> k2 a Source # | |
| Pretty1 t => Pretty2 (BV t :: (k -> Type) -> k -> Type) Source # | |
| HBitraversable (BV :: (k -> Type) -> (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope Methods hbitraverse :: Applicative f => (forall (b :: k0). s b -> f (s' b)) -> (forall (b :: k0). t b -> f (t' b)) -> BV s t a -> f (BV s' t' a) Source # | |
| HBifunctor (BV :: (k -> Type) -> (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HTraversable (BV g :: (u -> Type) -> u -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HMonad (BV g :: (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HBind (BV g :: (k -> Type) -> k -> Type) Source # | |
| HPointed (BV g :: (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HFunctor (BV g :: (u -> Type) -> u -> Type) Source # | |
hbitraverseBV :: Functor t => (g a -> t (g' b)) -> (f a -> t (f' b)) -> BV g f a -> t (BV g' f' b) Source #
newtype Scope g h f a Source #
Instances
| HDuofoldableAt (k2 :: k1 -> Type) (Scope k2 :: ((k1 -> Type) -> k1 -> Type) -> (k1 -> Type) -> k1 -> Type) Source # | |
Defined in Language.Expression.Scope Methods hduofoldMap :: HTraversable s => (forall (g :: k -> Type) (b :: k). (forall (c :: k). g c -> k2 c) -> s g b -> k2 b) -> (forall (b :: k). t b -> k2 b) -> Scope k2 s t a -> k2 a Source # | |
| HBound (Scope g :: ((k -> Type) -> k -> Type) -> (k -> Type) -> k -> Type) Source # | |
| (Pretty2 h, Pretty1 t) => Pretty2 (Scope t h :: (k -> Type) -> k -> Type) Source # | |
| HDuotraversable (Scope g :: ((u -> Type) -> u -> Type) -> (u -> Type) -> u -> Type) Source # | |
Defined in Language.Expression.Scope Methods hduotraverse :: Applicative f => (forall (g0 :: u0 -> Type) (g' :: u0 -> Type) (b :: u0). (forall (c :: u0). g0 c -> f (g' c)) -> s g0 b -> f (s' g' b)) -> (forall (b :: u0). t b -> f (t' b)) -> Scope g s t a -> f (Scope g s' t' a) Source # | |
| HDuofunctor (Scope g :: ((u -> Type) -> u -> Type) -> (u -> Type) -> u -> Type) Source # | |
| HTraversable h => HTraversable (Scope g h :: (u -> Type) -> u -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HPointed h => HPointed (Scope g h :: (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HFunctor h => HFunctor (Scope g h :: (u -> Type) -> u -> Type) Source # | |
_Scope :: Iso (Scope g h f a) (Scope g' h' f' a') (h (BV g (h f)) a) (h' (BV g' (h' f')) a') Source #
hbitraverseScope :: (Applicative t, HTraversable h) => (forall b. g b -> t (g' b)) -> (forall b. f b -> t (f' b)) -> Scope g h f a -> t (Scope g' h f' a) Source #
abstractTraverse :: (HMonad h, HTraversable h, Applicative t) => (forall b. f b -> t (Maybe (g b))) -> h f a -> t (Scope g h f a) Source #
newtype Scoped h f g a Source #
Sometimes it's convenient to move around the type arguments to Scope.
Instances
| (HFunctor h, HFoldableAt k2 h) => HBifoldableAt (k2 :: k1 -> Type) (Scoped h :: (k1 -> Type) -> (k1 -> Type) -> k1 -> Type) Source # | |
Defined in Language.Expression.Scope Methods hbifoldMap :: (forall (b :: k). f b -> k2 b) -> (forall (b :: k). g b -> k2 b) -> Scoped h f g a -> k2 a Source # | |
| (Pretty2 h, Pretty1 t) => Pretty2 (Scoped h t :: (k -> Type) -> k -> Type) Source # | |
| HTraversable h => HBitraversable (Scoped h :: (k -> Type) -> (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope Methods hbitraverse :: Applicative f => (forall (b :: k0). s b -> f (s' b)) -> (forall (b :: k0). t b -> f (t' b)) -> Scoped h s t a -> f (Scoped h s' t' a) Source # | |
| HFunctor h => HBifunctor (Scoped h :: (k -> Type) -> (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope Methods hbimap :: (forall (b :: k0). s b -> s' b) -> (forall (b :: k0). t b -> t' b) -> Scoped h s t a -> Scoped h s' t' a Source # hfirst :: (forall (b :: k0). s b -> s' b) -> Scoped h s t a -> Scoped h s' t a Source # hsecond :: (forall (b :: k0). t b -> t' b) -> Scoped h s t a -> Scoped h s t' a Source # | |
| HTraversable h => HTraversable (Scoped h f :: (u -> Type) -> u -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HFunctor h => HFunctor (Scoped h f :: (u -> Type) -> u -> Type) Source # | |
Instances
| (HDuotraversable h, HDuofoldableAt k2 h) => HFoldableAt (k2 :: k1 -> Type) (SFree h :: (k1 -> Type) -> k1 -> Type) Source # | |
Defined in Language.Expression.Scope | |
| Pretty3 h => Pretty2 (SFree h :: (k -> Type) -> k -> Type) Source # | |
| HDuotraversable h => HTraversable (SFree h :: (u -> Type) -> u -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HDuofunctor h => HMonad (SFree h :: (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HDuofunctor h => HBind (SFree h :: (k -> Type) -> k -> Type) Source # | |
| HPointed (SFree h :: (k -> Type) -> k -> Type) Source # | |
Defined in Language.Expression.Scope | |
| HDuofunctor h => HFunctor (SFree h :: (u -> Type) -> u -> Type) Source # | |