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

Safe HaskellSafe
LanguageHaskell98

Data.MemoCombinators.Class

Synopsis

Documentation

class MemoTable a where #

The class of types which have complete memo tables.

Minimal complete definition

table

Methods

table :: Memo a #

Instances

MemoTable Bool # 

Methods

table :: Memo Bool #

MemoTable Char # 

Methods

table :: Memo Char #

MemoTable Int # 

Methods

table :: Memo Int #

MemoTable Int8 # 

Methods

table :: Memo Int8 #

MemoTable Int16 # 

Methods

table :: Memo Int16 #

MemoTable Int32 # 

Methods

table :: Memo Int32 #

MemoTable Int64 # 

Methods

table :: Memo Int64 #

MemoTable Integer # 

Methods

table :: Memo Integer #

MemoTable Ordering # 

Methods

table :: Memo Ordering #

MemoTable Word # 

Methods

table :: Memo Word #

MemoTable Word8 # 

Methods

table :: Memo Word8 #

MemoTable Word16 # 

Methods

table :: Memo Word16 #

MemoTable Word32 # 

Methods

table :: Memo Word32 #

MemoTable Word64 # 

Methods

table :: Memo Word64 #

MemoTable () # 

Methods

table :: Memo () #

MemoTable a => MemoTable [a] # 

Methods

table :: Memo [a] #

MemoTable a => MemoTable (Maybe a) # 

Methods

table :: Memo (Maybe a) #

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

Methods

table :: Memo (Ratio a) #

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

Methods

table :: Memo (Either a b) #

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

Methods

table :: Memo (a, b) #

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

Methods

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

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

Methods

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

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

Methods

table :: Memo (a, b, c, d, e) #

(MemoTable a, MemoTable b, MemoTable c, MemoTable d, MemoTable e, MemoTable f) => MemoTable (a, b, c, d, e, f) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (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) # 

Methods

table :: Memo (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

class Memoizable a where #

The class of functions which can be completely memoized.

Minimal complete definition

memoize

Methods

memoize :: a -> a #

Instances

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

Methods

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