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

Safe HaskellSafe
LanguageHaskell98

Data.MemoCombinators.Class

Synopsis

Documentation

class MemoTable a where Source #

The class of types which have complete memo tables.

Minimal complete definition

table

Methods

table :: Memo a Source #

Instances

MemoTable Bool Source # 

Methods

table :: Memo Bool Source #

MemoTable Char Source # 

Methods

table :: Memo Char Source #

MemoTable Int Source # 

Methods

table :: Memo Int Source #

MemoTable Int8 Source # 

Methods

table :: Memo Int8 Source #

MemoTable Int16 Source # 

Methods

table :: Memo Int16 Source #

MemoTable Int32 Source # 

Methods

table :: Memo Int32 Source #

MemoTable Int64 Source # 

Methods

table :: Memo Int64 Source #

MemoTable Integer Source # 
MemoTable Ordering Source # 
MemoTable Word Source # 

Methods

table :: Memo Word Source #

MemoTable Word8 Source # 

Methods

table :: Memo Word8 Source #

MemoTable Word16 Source # 
MemoTable Word32 Source # 
MemoTable Word64 Source # 
MemoTable () Source # 

Methods

table :: Memo () Source #

MemoTable a => MemoTable [a] Source # 

Methods

table :: Memo [a] Source #

MemoTable a => MemoTable (Maybe a) Source # 

Methods

table :: Memo (Maybe a) Source #

(Integral a, MemoTable a) => MemoTable (Ratio a) Source # 

Methods

table :: Memo (Ratio a) Source #

(MemoTable a, MemoTable b) => MemoTable (Either a b) Source # 

Methods

table :: Memo (Either a b) Source #

(MemoTable a, MemoTable b) => MemoTable (a, b) Source # 

Methods

table :: Memo (a, b) Source #

(MemoTable a, MemoTable b, MemoTable c) => MemoTable (a, b, c) Source # 

Methods

table :: Memo (a, b, c) Source #

(MemoTable a, MemoTable b, MemoTable c, MemoTable d) => MemoTable (a, b, c, d) Source # 

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 # 

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 # 

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 # 

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 # 

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 # 

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 # 

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 # 

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 # 

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 # 

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 # 

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 # 

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.

Minimal complete definition

memoize

Methods

memoize :: a -> a Source #

Instances

MemoTable a => Memoizable (a -> b) Source # 

Methods

memoize :: (a -> b) -> a -> b Source #