-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | 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 |]
--   
-- -- Example 2: -- --
--   import Data.Monoid
--   instance Monoid Double where
--          mempty = 0.0
--          mappend = (+)
--   
--   differentiate f = ((f 0.001) - f 0) / 0.001
--   
--   minima :: (Double -> Double) -> Bool
--   minima = [codo| f => f'  <- differentiate f
--                        f'' <- differentiate f'
--                        (extract f' < 0.001) && (extract f'' > 0) |]
--   
-- -- Further explanation of the syntax can be found in the following -- (short) paper: -- http://www.cl.cam.ac.uk/~dao29/drafts/codo-notation-orchard-ifl12.pdf -- with a numer of examples. -- -- Further examples can be found here: -- https://github.com/dorchard/codo-notation. @package codo-notation @version 0.5.2 module Language.Haskell.Codo codo :: QuasiQuoter