rope-0.1: Data/Rope/Util/Comonad.hs
module Data.Rope.Util.Comonad
( Comonad(..)
) where
class Functor w => Comonad w where
extract :: w a -> a
duplicate :: w a -> w (w a)
extend :: (w a -> b) -> w a -> w b
duplicate = extend id
extend f = fmap f . duplicate