deep-transformations-0: Deep natural and unnatural tree transformations, including attribute grammars
Safe HaskellNone
LanguageHaskell2010

Transformation.Rank2

Documentation

newtype Map p q Source #

Constructors

Map (forall x. p x -> q x) 

Instances

Instances details
Transformation (Map p q) Source # 
Instance details

Defined in Transformation.Rank2

Associated Types

type Domain (Map p q) :: Type -> Type Source #

type Codomain (Map p q) :: Type -> Type Source #

At (Map p q) x Source # 
Instance details

Defined in Transformation.Rank2

Methods

($) :: Map p q -> Domain (Map p q) x -> Codomain (Map p q) x Source #

(Functor (Map p q) g, Functor p) => Functor (Map p q) g Source # 
Instance details

Defined in Transformation.Rank2

Methods

(<$>) :: Map p q -> Domain (Map p q) (g (Domain (Map p q)) (Domain (Map p q))) -> Codomain (Map p q) (g (Codomain (Map p q)) (Codomain (Map p q))) Source #

type Domain (Map p q) Source # 
Instance details

Defined in Transformation.Rank2

type Domain (Map p q) = p
type Codomain (Map p q) Source # 
Instance details

Defined in Transformation.Rank2

type Codomain (Map p q) = q

newtype Fold p m Source #

Constructors

Fold (forall x. p x -> m) 

Instances

Instances details
Transformation (Fold p m) Source # 
Instance details

Defined in Transformation.Rank2

Associated Types

type Domain (Fold p m) :: Type -> Type Source #

type Codomain (Fold p m) :: Type -> Type Source #

At (Fold p m) x Source # 
Instance details

Defined in Transformation.Rank2

Methods

($) :: Fold p m -> Domain (Fold p m) x -> Codomain (Fold p m) x Source #

type Domain (Fold p m) Source # 
Instance details

Defined in Transformation.Rank2

type Domain (Fold p m) = p
type Codomain (Fold p m) Source # 
Instance details

Defined in Transformation.Rank2

type Codomain (Fold p m) = Const m :: Type -> Type

newtype Traversal p q m Source #

Constructors

Traversal (forall x. p x -> m (q x)) 

Instances

Instances details
Transformation (Traversal p q m) Source # 
Instance details

Defined in Transformation.Rank2

Associated Types

type Domain (Traversal p q m) :: Type -> Type Source #

type Codomain (Traversal p q m) :: Type -> Type Source #

At (Traversal p q m) x Source # 
Instance details

Defined in Transformation.Rank2

Methods

($) :: Traversal p q m -> Domain (Traversal p q m) x -> Codomain (Traversal p q m) x Source #

type Domain (Traversal p q m) Source # 
Instance details

Defined in Transformation.Rank2

type Domain (Traversal p q m) = p
type Codomain (Traversal p q m) Source # 
Instance details

Defined in Transformation.Rank2

type Codomain (Traversal p q m) = Compose m q

(<$>) :: Functor (Map p q) g => (forall a. p a -> q a) -> g p p -> g q q Source #

foldMap :: (Functor (Fold p m) g, Foldable (g (Const m)), Monoid m) => (forall a. p a -> m) -> g p p -> m Source #

traverse :: Traversable (Traversal p q m) g => (forall a. p a -> m (q a)) -> g p p -> m (g q q) Source #