codo-notation: A notation for comonads, analogous to the do-notation for monads. A notation for comonads, analogous to the do-notation for monads. Requires the TemplateHaskell and QuasiQuotes extensions. Example 1: {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE QuasiQuotes #-} import Control.Comonad import Language.Haskell.Codo foo :: (Comonad c, Num a) => c a -> a foo = [codo| x => extract x + 1 |