data-memocombinators-0.5.1: Combinators for building memo tables.

Safe Haskell | Safe-Inferred
Language | Haskell98

Data.MemoCombinators.Class

Synopsis

- class MemoTable a where
  - table :: Memo a
- class Memoizable a where
  - memoize :: a -> a

# Documentation

class MemoTable a where Source #

The class of types which have complete memo tables.

Methods

table :: Memo a Source #

#### Instances

Instances details

MemoTable Int16 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Int16 Source #
MemoTable Int32 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Int32 Source #
MemoTable Int64 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Int64 Source #
MemoTable Int8 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Int8 Source #
MemoTable Word16 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Word16 Source #
MemoTable Word32 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Word32 Source #
MemoTable Word64 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Word64 Source #
MemoTable Word8 Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Word8 Source #
MemoTable Ordering Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Ordering Source #
MemoTable Integer Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Integer Source #
MemoTable () Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo () Source #
MemoTable Bool Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Bool Source #
MemoTable Char Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Char Source #
MemoTable Int Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Int Source #
MemoTable Word Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo Word Source #
(Integral a, MemoTable a) => MemoTable (Ratio a) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (Ratio a) Source #
MemoTable a => MemoTable (Maybe a) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (Maybe a) Source #
MemoTable a => MemoTable [a] Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo [a] Source #
(MemoTable a, MemoTable b) => MemoTable (Either a b) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (Either a b) Source #
(MemoTable a, MemoTable b) => MemoTable (a, b) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b) Source #
(MemoTable a, MemoTable b, MemoTable c) => MemoTable (a, b, c) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d) => MemoTable (a, b, c, d) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e) => MemoTable (a, b, c, d, e) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f) => MemoTable (a, b, c, d, e, f) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g) => MemoTable (a, b, c, d, e, f, g) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h) => MemoTable (a, b, c, d, e, f, g, h) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i) => MemoTable (a, b, c, d, e, f, g, h, i) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i, MemoTable j) => MemoTable (a, b, c, d, e, f, g, h, i, j) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i, j) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i, MemoTable j, MemoTable k) => MemoTable (a, b, c, d, e, f, g, h, i, j, k) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i, j, k) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i, MemoTable j, MemoTable k, MemoTable l) => MemoTable (a, b, c, d, e, f, g, h, i, j, k, l) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i, j, k, l) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i, MemoTable j, MemoTable k, MemoTable l, MemoTable m) => MemoTable (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i, j, k, l, m) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i, MemoTable j, MemoTable k, MemoTable l, MemoTable m, MemoTable n) => MemoTable (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source #
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g, MemoTable h, MemoTable i, MemoTable j, MemoTable k, MemoTable l, MemoTable m, MemoTable n, MemoTable o) => MemoTable (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods table :: Memo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source #

class Memoizable a where Source #

The class of functions which can be completely memoized.

Methods

memoize :: a -> a Source #

#### Instances

Instances details

MemoTable a => Memoizable (a -> b) Source # |
Instance details Defined in Data.MemoCombinators.Class Methods memoize :: (a -> b) -> a -> b Source #