| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Blanks.Located
Synopsis
- newtype Colocated l a = Colocated {
- unColocated :: Reader l a
- data Located l a = Located {
- locatedLoc :: !l
- locatedVal :: a
- askColocated :: Colocated l l
- colocated :: (l -> a) -> Colocated l a
- runColocated :: Colocated l a -> l -> a
Documentation
newtype Colocated l a Source #
Because we defined a unique left adjoint, we have to define the unique right.
Constructors
| Colocated | |
Fields
| |
Instances
| MonadReader l (Colocated l) Source # | |
| Monad (Colocated l) Source # | |
| Functor (Colocated l) Source # | |
| Applicative (Colocated l) Source # | |
Defined in Blanks.Located | |
| Distributive (Colocated l) Source # | |
Defined in Blanks.Located | |
| Representable (Colocated l) Source # | |
| Adjunction (Located l) (Colocated l) Source # | |
Defined in Blanks.Located | |
| type Rep (Colocated l) Source # | |
Defined in Blanks.Located | |
This is basically the Env comonad, but with the env strict.
It's also basically the Writer monad in certain contexts.
We define a new, non-transforming datatype so we can pattern-match.
Constructors
| Located | |
Fields
| |
Instances
| Monoid l => MonadWriter l (Located l) Source # | |
| Monoid l => Monad (Located l) Source # | |
| Functor (Located l) Source # | |
| Monoid l => Applicative (Located l) Source # | |
| Foldable (Located l) Source # | |
Defined in Blanks.Located Methods fold :: Monoid m => Located l m -> m # foldMap :: Monoid m => (a -> m) -> Located l a -> m # foldMap' :: Monoid m => (a -> m) -> Located l a -> m # foldr :: (a -> b -> b) -> b -> Located l a -> b # foldr' :: (a -> b -> b) -> b -> Located l a -> b # foldl :: (b -> a -> b) -> b -> Located l a -> b # foldl' :: (b -> a -> b) -> b -> Located l a -> b # foldr1 :: (a -> a -> a) -> Located l a -> a # foldl1 :: (a -> a -> a) -> Located l a -> a # toList :: Located l a -> [a] # length :: Located l a -> Int # elem :: Eq a => a -> Located l a -> Bool # maximum :: Ord a => Located l a -> a # minimum :: Ord a => Located l a -> a # | |
| Traversable (Located l) Source # | |
| Adjunction (Located l) (Colocated l) Source # | |
Defined in Blanks.Located | |
| (Eq l, Eq a) => Eq (Located l a) Source # | |
| (Show l, Show a) => Show (Located l a) Source # | |
| Generic (Located l a) Source # | |
| (NFData l, NFData a) => NFData (Located l a) Source # | |
Defined in Blanks.Located | |
| NatNewtype (ScopeW (Located l) n f (LocScope l n f)) (LocScope l n f) Source # | |
Defined in Blanks.LocScope | |
| type Rep (Located l a) Source # | |
Defined in Blanks.Located type Rep (Located l a) = D1 ('MetaData "Located" "Blanks.Located" "blanks-0.5.0-inplace" 'False) (C1 ('MetaCons "Located" 'PrefixI 'True) (S1 ('MetaSel ('Just "locatedLoc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 l) :*: S1 ('MetaSel ('Just "locatedVal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) | |
askColocated :: Colocated l l Source #
runColocated :: Colocated l a -> l -> a Source #