packages feed

free-operational-0.4.0.0: free-operational.cabal

name:                free-operational
category:            Control
version:             0.4.0.0
build-type:          Simple
cabal-version:       >=1.8
synopsis:            Operational Applicative, Alternative, Monad and MonadPlus from free types.

description:         
    A reimplementation of the @operational@ package
    (<http://hackage.haskell.org/package/operational>) using free monads 
    (from <http://hackage.haskell.org/package/free>).  This implements
    ideas discussed here:
    .
    * <http://stackoverflow.com/questions/14263363/is-operational-really-isomorphic-to-a-free-monad>
    .
    * <http://www.reddit.com/r/haskell/comments/17a33g/free_functors_the_reason_free_and_operational_are/>
    .
    To understand the basic concepts you can do no better than read
    Heinrich Apfelmus' @operational@ tutorial:
    .
    * <http://apfelmus.nfshost.com/articles/operational-monad.html>
    .
    In addition to that, this package supplies @operational@-style
    modules for 'Applicative', 'Alternative' and 'MonadPlus'.
    'Applicative' and 'Alternative' programs easily admit of static
    analysis.  See these references for discussion and examples:
    .
    * <http://gergo.erdi.hu/blog/2012-12-01-static_analysis_with_applicatives/> (discussion: <http://www.reddit.com/r/haskell/comments/143wpd/static_analysis_with_applicatives/>)
    .
    * <http://paolocapriotti.com/blog/2013/04/03/free-applicative-functors/> (discussion: <http://www.reddit.com/r/haskell/comments/1bnql3/free_applicative_functors_icfp_submission/>)
    .
    See "Control.Applicative.Operational" for the bulk of the documentation.
    "Control.Alternative.Operational" also has some significant examples.

license:             BSD3
license-file:        LICENSE
author:              Luis Casillas
maintainer:          luis@casillas.org
copyright:           2013 Luis Casillas
bug-reports:         https://github.com/sacundim/free-operational/issues
source-repository head
  type:           git
  location:       https://github.com/sacundim/free-operational


test-suite tests
  type:            exitcode-stdio-1.0
  hs-source-dirs:  tests
  Main-is:         Properties.hs
  build-depends:   base ==4.*,
                   mtl >=2.1,
                   transformers >=0.3,
                   free-operational >=0.2,
                   test-framework >=0.8,
                   test-framework-quickcheck2 >=0.3,  
                   QuickCheck >=2.5,
                   checkers ==0.3.1

library
  exposed-modules:  Control.Operational.Class,
                    Control.Operational.Instruction,
                    Control.Applicative.Operational,
                    Control.Alternative.Operational,
                    Control.Monad.Operational,
                    Control.Monad.Operational.Simple,
                    Control.Monad.Trans.Operational,
                    Control.MonadPlus.Operational
  
  build-depends:       base == 4.*,
                       transformers >=0.3,
                       mtl >=2,
                       free >=3.3,
                       comonad-transformers >=3.0,
                       kan-extensions >=3.5