Was ist die Comonad-Typklasse in Haskell? Wie in Comonad von Control.Comonad im Comonad-Paket (Erläuterungen zu anderen Paketen, die eine Comonad-Typklasse bereitstellen, sind ebenfalls willkommen). Ich habe vage von Comonad gehört, aber alles, was ich wirklich darüber weiß, ist, dass es eine extract :: w a -> aArt Parallele zu Monad bietet return :: a -> m a.
Bonuspunkte für das Notieren der Verwendung von Comonad im "echten" Code im "echten" Code.
return :: a ~> m a, flip bind :: (a ~> m b) -> (m a ~> m b). Kehren Sie die schnörkellosen Pfeile um und Sie erhalten die komonadischen Operationen : extract :: a <~ w a, extend :: (a <~ w b) -> (w a <~ w b)( extract :: w a -> a, extend :: (w a -> b) -> w a -> w b)