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 | None |
Language | Haskell2010 |
Magma
data Magma i t b a where Source #
This provides a way to peek at the internal structure of a
Traversal
or IndexedTraversal
MagmaAp :: Magma i (x -> y) b a -> Magma i x b a -> Magma i y b a | |
MagmaPure :: x -> Magma i x b a | |
MagmaFmap :: (x -> y) -> Magma i x b a -> Magma i y b a | |
Magma :: i -> a -> Magma i b b a |
Instances
Functor (Magma i t b) Source # | |
Foldable (Magma i t b) Source # | |
Defined in Control.Lens.Internal.Magma fold :: Monoid m => Magma i t b m -> m # foldMap :: Monoid m => (a -> m) -> Magma i t b a -> m # foldr :: (a -> b0 -> b0) -> b0 -> Magma i t b a -> b0 # foldr' :: (a -> b0 -> b0) -> b0 -> Magma i t b a -> b0 # foldl :: (b0 -> a -> b0) -> b0 -> Magma i t b a -> b0 # foldl' :: (b0 -> a -> b0) -> b0 -> Magma i t b a -> b0 # foldr1 :: (a -> a -> a) -> Magma i t b a -> a # foldl1 :: (a -> a -> a) -> Magma i t b a -> a # toList :: Magma i t b a -> [a] # null :: Magma i t b a -> Bool # length :: Magma i t b a -> Int # elem :: Eq a => a -> Magma i t b a -> Bool # maximum :: Ord a => Magma i t b a -> a # minimum :: Ord a => Magma i t b a -> a # | |
Traversable (Magma i t b) Source # | |
Defined in Control.Lens.Internal.Magma | |
(Show i, Show a) => Show (Magma i t b a) Source # | |
runMagma :: Magma i t a a -> t Source #
Run a Magma
where all the individual leaves have been converted to the
expected type
Molten
newtype Molten i a b t Source #
This is a a non-reassociating initially encoded version of Bazaar
.
Instances
IndexedComonad (Molten i) Source # | |
IndexedFunctor (Molten i) Source # | |
Functor (Molten i a b) Source # | |
Applicative (Molten i a b) Source # | |
Defined in Control.Lens.Internal.Magma pure :: a0 -> Molten i a b a0 # (<*>) :: Molten i a b (a0 -> b0) -> Molten i a b a0 -> Molten i a b b0 # liftA2 :: (a0 -> b0 -> c) -> Molten i a b a0 -> Molten i a b b0 -> Molten i a b c # (*>) :: Molten i a b a0 -> Molten i a b b0 -> Molten i a b b0 # (<*) :: Molten i a b a0 -> Molten i a b b0 -> Molten i a b a0 # | |
a ~ b => Comonad (Molten i a b) Source # | |
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.
Instances
IndexedFunctor Mafic Source # | |
Functor (Mafic a b) Source # | |
Applicative (Mafic a b) Source # | |
Defined in Control.Lens.Internal.Magma |