-- 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