free-4.7: free.cabal
name: free
category: Control, Monads
version: 4.7
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
author: Edward A. Kmett
maintainer: Edward A. Kmett <ekmett@gmail.com>
stability: provisional
homepage: http://github.com/ekmett/free/
bug-reports: http://github.com/ekmett/free/issues
copyright: Copyright (C) 2008-2013 Edward A. Kmett
synopsis: Monads for free
description:
Free monads are useful for many tree-like structures and domain specific languages.
.
If @f@ is a 'Functor' then the free 'Monad' on @f@ is the type
of trees whose nodes are labeled with the constructors of @f@. The word
\"free\" is used in the sense of \"unrestricted\" rather than \"zero-cost\":
@Free f@ makes no constraining assumptions beyond those given by @f@ and the
definition of 'Monad'. As used here it is a standard term from the
mathematical theory of adjoint functors.
.
Cofree comonads are dual to free monads. They provide convenient ways to talk
about branching streams and rose-trees, and can be used to annotate syntax
trees. The cofree comonad can be seen as a stream parameterized by a 'Functor'
that controls its branching factor.
.
More information on free monads, including examples, can be found in the
following blog posts:
<http://comonad.com/reader/2008/monads-for-free/>
<http://comonad.com/reader/2011/free-monads-for-less/>
build-type: Simple
extra-source-files:
.ghci
.gitignore
.travis.yml
.vim.custom
README.markdown
CHANGELOG.markdown
HLint.hs
doc/proof/Control/Comonad/Cofree/*.md
doc/proof/Control/Comonad/Trans/Cofree/*.md
source-repository head
type: git
location: git://github.com/ekmett/free.git
library
hs-source-dirs: src
default-language: Haskell2010
default-extensions: CPP
other-extensions:
MultiParamTypeClasses
FunctionalDependencies
FlexibleInstances
UndecidableInstances
Rank2Types
GADTs
build-depends:
base == 4.*,
bifunctors == 4.*,
comonad == 4.*,
distributive >= 0.2.1,
mtl >= 2.0.1.0 && < 2.2,
prelude-extras >= 0.4 && < 1,
profunctors == 4.*,
semigroupoids == 4.*,
semigroups >= 0.8.3.1 && < 1,
transformers >= 0.2.0 && < 0.4,
template-haskell >= 2.7.0.0 && < 3
exposed-modules:
Control.Applicative.Free
Control.Alternative.Free
Control.Comonad.Cofree
Control.Comonad.Cofree.Class
Control.Comonad.Trans.Cofree
Control.Comonad.Trans.Coiter
Control.Monad.Free
Control.Monad.Free.Church
Control.Monad.Free.Class
Control.Monad.Free.TH
Control.Monad.Trans.Free
Control.Monad.Trans.Free.Church
Control.Monad.Trans.Iter
ghc-options: -Wall