Safe Haskell | None |
---|---|

Language | Haskell2010 |

- class StaticFunctor w => StaticExtend w where
- class StaticExtend w => StaticComonad w where

# Documentation

class StaticFunctor w => StaticExtend w where Source #

Instances of `StaticExtend`

should satisfy the following laws:

`staticExtend`

f =`staticMap`

f .`staticDuplicate`

`staticDuplicate`

=`staticExtend`

(static`id`

)`staticExtend`

f .`staticExtend`

g =`staticExtend`

(static (.)`cap`

f`cap`

`staticExtend`

g)`staticDuplicate`

.`staticDuplicate`

=`staticMap`

(static`staticDuplicate`

) .`staticDuplicate`

staticDuplicate :: Typeable a => w a -> w (w a) Source #

staticExtend :: (Typeable a, Typeable b) => Closure (w a -> b) -> w a -> w b Source #

class StaticExtend w => StaticComonad w where Source #

staticExtract :: Typeable a => w a -> a Source #