name: category-extras
category: Control, Monads, Comonads
version: 0.50.3
license: BSD3
cabal-version: >= 1.2
license-file: LICENSE
author: Edward A. Kmett, Dave Menendez
maintainer: Edward A. Kmett <ekmett@gmail.com>
stability: experimental
homepage: http://comonad.com/reader/
synopsis: Various modules and constructs inspired by category theory
copyright: Copyright (C) 2008 Edward A. Kmett
Copyright (C) 2004--2008 Dave Menendez
Copyright (C) 2007 Iavor Diatchki
description: A vastly expanded collection of modules implementing various
ideas from category theory. Notable bits include: comonads,
adjunctions, functor fixedpoints and various recursion
operaters ala /Functional Programming with Bananas, Lenses,
Envelopes and Barbed Wire/.
build-type: Simple
flag ArrowSubclassesCategory {
description: Indicates Control.Category is available and that the standard library has
its arrows subclass Control.Category.Category
default: True
}
flag TypeFamilies {
description: Support for Type Families is available to us
}
flag Optimize {
description: Enable optimizations
default: False
}
library {
build-depends: base > 3, mtl, array
extensions:
CPP,
EmptyDataDecls,
FlexibleContexts,
FlexibleInstances,
FunctionalDependencies,
MultiParamTypeClasses,
TypeOperators,
TypeSynonymInstances
UndecidableInstances,
ExistentialQuantification,
Rank2Types
exposed-modules:
Control.Category.Monoidal,
Control.Category.Cartesian,
Control.Category.Cartesian.Closed,
Control.Applicative.Parameterized,
Control.Arrow.BiKleisli,
Control.Arrow.CoKleisli,
Control.Category.Associative,
Control.Category.Braided,
Control.Category.Distributive,
Control.Category.Dual,
Control.Category.Hask,
Control.Category.Object,
Control.Comonad,
Control.Comonad.Cofree,
Control.Comonad.Context,
Control.Comonad.Coideal,
Control.Comonad.Fix,
Control.Comonad.Indexed,
Control.Comonad.HigherOrder,
Control.Comonad.Parameterized,
Control.Comonad.Pointer,
Control.Comonad.Reader,
Control.Comonad.Supply
Control.Functor.Adjunction,
Control.Functor.Adjunction.HigherOrder,
Control.Functor.Algebra,
Control.Functor.Algebra.Elgot,
Control.Functor.Composition,
Control.Functor.Combinators.Const,
Control.Functor.Combinators.Lift,
Control.Functor.Combinators.Join,
Control.Functor.Combinators.Biff,
Control.Functor.Combinators.Flip,
Control.Functor.Combinators.Of,
Control.Functor.Contra,
Control.Functor.Extras,
Control.Functor.Exponential,
Control.Functor.Fix,
Control.Functor.Full,
Control.Functor.HigherOrder,
Control.Functor.HigherOrder.Composition,
Control.Functor.Indexed,
Control.Functor.KanExtension,
Control.Functor.Limit,
Control.Functor.Pointed,
Control.Functor.Pointed.Composition,
Control.Functor.Representable,
Control.Functor.Strong,
Control.Functor.Zip,
Control.Functor.Zap,
Control.Monad.Free,
Control.Monad.HigherOrder,
Control.Monad.Indexed,
Control.Monad.Indexed.Cont,
Control.Monad.Indexed.Fix,
Control.Monad.Indexed.State,
Control.Monad.Indexed.Trans,
Control.Monad.Parameterized,
Control.Monad.Hyper,
Control.Monad.Either,
Control.Morphism.Hylo,
Control.Morphism.Cata,
Control.Morphism.Ana,
Control.Morphism.Meta,
Control.Morphism.Futu,
Control.Morphism.Chrono,
Control.Morphism.Para,
Control.Morphism.Dyna,
Control.Morphism.Apo,
Control.Morphism.Zygo,
Control.Morphism.Histo,
Data.Void
hs-source-dirs: src
ghc-options: -Wall
if flag(ArrowSubclassesCategory) {
build-depends: ghc >= 6.9
cpp-options: -D__ARROW_SUBCLASSES_CATEGORY__=1
} else {
build-depends: ghc < 6.9
}
if flag(TypeFamilies) {
extensions: TypeFamilies
cpp-options: -D__TYPE_FAMILIES__=1
}
if flag(Optimize) {
ghc-options: -funbox-strict-fields -O2
}
}