streamt: Simple, Fair and Terminating Backtracking Monad Transformer

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

This Haskell library provides an implementation of the MonadPlus type class that enumerates results of a non-deterministic computation by interleaving subcomputations in a way that has usually much better memory performance than other strategies with the same termination properties.


[Skip to Readme]

Properties

Versions 0.5.0.0, 0.5.0.0, 0.5.0.1
Change log None available
Dependencies base (>=4.3 && <5), logict (>=0.7 && <0.8), mtl (>=2.0 && <2.3) [details]
License BSD-3-Clause
Author Oleg Kiselyov, Sebastian Fischer, David A Roberts
Maintainer David A Roberts <d@vidr.cc>
Category Control, Monads
Home page http://github.com/davidar/streamt
Bug tracker http://github.com/davidar/streamt/issues
Source repo head: git clone git://github.com/davidar/streamt.git
Uploaded by davidar at 2021-05-24T01:06:26Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for streamt-0.5.0.0

[back to package description]

Simple, Fair and Terminating Backtracking Monad Transformer

This Haskell library provides an implementation of the MonadPlus type class that enumerates results of a non-deterministic computation by interleaving subcomputations in a way that has usually much better memory performance than other strategies with the same termination properties.

It also terminates in many cases where the fair conjunction and interleaving operators provided by LogicT fail to do so, allowing it to safely provide fairness by default.

More information is available on the author's website.

This package aims to be a drop-in replacement for the unmaintained stream-monad package, in addition to providing much of the same functionality as the logict package.