Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 hbifoldMap :: forall f g (a :: k). (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 hbitraverse :: forall f s s' t t' (a :: k0). 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 hbimap :: forall s s' t t' (a :: k0). (forall (b :: k0). s b -> s' b) -> (forall (b :: k0). t b -> t' b) -> BV s t a -> BV s' t' a Source # hfirst :: forall s s' (t :: k0 -> Type) (a :: k0). (forall (b :: k0). s b -> s' b) -> BV s t a -> BV s' t a Source # hsecond :: forall t t' (s :: k0 -> Type) (a :: k0). (forall (b :: k0). t b -> t' b) -> BV s t a -> BV s t' a Source # | |
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 hduofoldMap :: forall s t (a :: k). 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 hduotraverse :: forall f s s' t t' (a :: u0). 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 hbifoldMap :: forall f g (a :: k). (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 hbitraverse :: forall f s s' t t' (a :: k0). 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 hbimap :: forall s s' t t' (a :: k0). (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 s s' (t :: k0 -> Type) (a :: k0). (forall (b :: k0). s b -> s' b) -> Scoped h s t a -> Scoped h s' t a Source # hsecond :: forall t t' (s :: k0 -> Type) (a :: k0). (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 # | |