Safe Haskell | None |
---|
Basic combinators for building enumerations most users will want to use the type class based combinators in Test.Feat.Class instead.
- type Part = Int
- type Index = Integer
- data Enumerate a = Enumerate {}
- module Data.Monoid
- union :: Enumerate a -> Enumerate a -> Enumerate a
- module Control.Applicative
- singleton :: a -> Enumerate a
- pay :: Enumerate a -> Enumerate a
- mem :: Enumerate a -> Enumerate a
- mempay :: Enumerate a -> Enumerate a
- module Data.Typeable
- data Tag = Source String String Int Int
- tag :: Q Exp
- tagShare :: Typeable a => Tag -> Enumerate a -> Enumerate a
- optimise :: Enumerate a -> Enumerate a
Documentation
A functional enumeration of type t
is a partition of
t
into finite numbered sets called Parts. The number that
identifies each part is called the cost of the values in
that part.
Combinators for building enumerations
module Data.Monoid
module Control.Applicative
Memoisation
mempay :: Enumerate a -> Enumerate aSource
A convenient combination of memoisation and guarded recursion.
Polymorphic memoisation
module Data.Typeable