rewire-base-2.8: A Haskell-to-Verilog/VHDL compiler, shared base utilities
Safe HaskellSafe
LanguageHaskell2010

ReWire.SYB

Synopsis

Documentation

data Tr (m :: Type -> Type) a Source #

Constructors

TId 
TM (a -> m a) 
T (a -> a) 

Instances

Instances details
Monad m => Monoid (Tr m a) Source # 
Instance details

Defined in ReWire.SYB

Methods

mempty :: Tr m a #

mappend :: Tr m a -> Tr m a -> Tr m a #

mconcat :: [Tr m a] -> Tr m a #

Monad m => Semigroup (Tr m a) Source # 
Instance details

Defined in ReWire.SYB

Methods

(<>) :: Tr m a -> Tr m a -> Tr m a #

sconcat :: NonEmpty (Tr m a) -> Tr m a #

stimes :: Integral b => b -> Tr m a -> Tr m a #

transformTr :: (Data a, Data b, Monad m) => Tr m a -> b -> m b Source #

transform :: (Data a, Data b) => (a -> a) -> b -> b Source #

transformM :: (Monad m, Data a, Data b) => (a -> m a) -> b -> m b Source #

query :: (Data a, Data b) => a -> [b] Source #

queryWith :: (Data a, Typeable b) => (b -> [r]) -> a -> [r] Source #

A query in a single generic sweep: collects f b at every node of type b. Unlike query at an expression type, it never re-extracts a node's children per level, which is quadratic on deeply nested binders.

gmapT :: Data a => (forall b. Data b => b -> b) -> a -> a #

A generic transformation that maps over the immediate subterms

The default definition instantiates the type constructor c in the type of gfoldl to an identity datatype constructor, using the isomorphism pair as injection and projection.