The latest version of codo-notation is 0.5.2-0.
codo-notation
Version 0.5 revision 0 uploaded by DominicOrchard.
Package meta
- Synopsis
- A notation for comonads, analogous to the do-notation for monads.
- Description
Requires the
TemplateHaskell
andQuasiQuotes
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.
- Author
- Dominic Orchard <dom.orchard@gmail.com>
- Bug reports
- n/a
- Category
- Language
- Copyright
- n/a
- Homepage
- n/a
- Maintainer
- Dominic Orchard <dom.orchard@gmail.com>
- Package URL
- n/a
- Stability
- experimental