This is a Haskell package containing the heap monad and some of the examples in the paper
It contains three main components:
Monus
class (and some instances).HeapT
monad, as described in the last section of the paper.HeapT
monad.The Monus
class can be found in Data.Monus
, HeapT
is in Control.Monad.Heap
, and the examples are
in the MonusWeightedSearch.Examples
directory.
The examples include:
MonusWeightedSearch.Examples.Dijkstra
)MonusWeightedSearch.Examples.Parsing
)MonusWeightedSearch.Examples.Sampling
)MonusWeightedSearch.Examples.Viterbi
)Though the primary purpose of this package is to demonstrate the ideas in the paper, the heap monad has been packaged so it can be used as-is in "real" code.
The documentation is compiled on every commit, it can be seen here.
Benchmarks are run occasionally, their output can be seen here.