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

Safe HaskellSafe-Inferred
LanguageHaskell98

Data.MemoCombinators.Class

Synopsis

Documentation

class MemoTable a where Source

The class of types which have complete memo tables.

Methods

table :: Memo a Source

Instances

MemoTable Bool 
MemoTable Char 
MemoTable Int 
MemoTable Int8 
MemoTable Int16 
MemoTable Int32 
MemoTable Int64 
MemoTable Integer 
MemoTable Ordering 
MemoTable Word 
MemoTable Word8 
MemoTable Word16 
MemoTable Word32 
MemoTable Word64 
MemoTable () 
MemoTable a => MemoTable [a] 
(Integral a, MemoTable a) => MemoTable (Ratio a) 
MemoTable a => MemoTable (Maybe a) 
(MemoTable a, MemoTable b) => MemoTable (Either a b) 
(MemoTable a, MemoTable b) => MemoTable (a, b) 
(MemoTable a, MemoTable b, MemoTable c) => MemoTable (a, b, c) 
(MemoTable a, MemoTable b, MemoTable c, MemoTable d) => MemoTable (a, b, c, d) 
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e) => MemoTable (a, b, c, d, e) 
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f) => MemoTable (a, b, c, d, e, f) 
(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f, MemoTable g) => MemoTable (a, b, c, d, e, f, g) 
(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) 
(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) 
(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) 
(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) 
(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) 
(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) 
(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) 
(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) 

class Memoizable a where Source

The class of functions which can be completely memoized.

Methods

memoize :: a -> a Source

Instances

MemoTable a => Memoizable (a -> b)