Copyright | (C) 2012-2016 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell98 |
- data Magma i t b a where
- runMagma :: Magma i t a a -> t
- newtype Molten i a b t = Molten {}
- data Mafic a b t = Mafic Int (Int -> Magma Int t b a)
- runMafic :: Mafic a b t -> Magma Int t b a
- data TakingWhile p (g :: * -> *) a b t = TakingWhile Bool t (Bool -> Magma () t b (Corep p a))
- runTakingWhile :: TakingWhile p f a b t -> Magma () t b (Corep p a)
Magma
data Magma i t b a where Source #
This provides a way to peek at the internal structure of a
Traversal
or IndexedTraversal
runMagma :: Magma i t a a -> t Source #
Run a Magma
where all the individual leaves have been converted to the
expected type
Molten
Mafic
This is used to generate an indexed magma from an unindexed source
By constructing it this way we avoid infinite reassociations in sums where possible.
TakingWhile
data TakingWhile p (g :: * -> *) a b t Source #
This is used to generate an indexed magma from an unindexed source
By constructing it this way we avoid infinite reassociations where possible.
In
, TakingWhile
p g a b tg
has a nominal
role to avoid exposing an illegal _|_ via Contravariant
,
while the remaining arguments are degraded to a nominal
role by the invariants of Magma
TakingWhile Bool t (Bool -> Magma () t b (Corep p a)) |
Corepresentable p => Bizarre p (TakingWhile p g) Source # | |
IndexedFunctor (TakingWhile p f) Source # | |
Functor (TakingWhile p f a b) Source # | |
Applicative (TakingWhile p f a b) Source # | |
Contravariant f => Contravariant (TakingWhile p f a b) Source # | |
Apply (TakingWhile p f a b) Source # | |
runTakingWhile :: TakingWhile p f a b t -> Magma () t b (Corep p a) Source #
Generate a Magma
with leaves only while the predicate holds from left to right.