Safe Haskell  None 

Language  Haskell2010 
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.
Colocated  

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 #  
type Rep (Colocated l) Source #  
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, nontransforming datatype so we can patternmatch.
Located  

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 fold :: Monoid m => Located l m > 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 #  
(Eq l, Eq a) => Eq (Located l a) Source #  
(Show l, Show a) => Show (Located l a) Source #  
NatNewtype (ScopeW (Located l) n f (LocScope l n f)) (LocScope l n f) Source #  
Defined in Blanks.LocScope 
askColocated :: Colocated l l Source #
runColocated :: Colocated l a > l > a Source #