logict-state-0.1.0.2: Library for logic programming based on haskell package logict

Copyright(c) Atze Dijkstra
LicenseBSD3
Maintaineratzedijkstra@gmail.com
Stabilityexperimental, (as of 20160218) under development
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell2010

Control.Monad.LogicState

Contents

Description

A backtracking, logic programming monad partially derived and on top of logict, adding backtrackable state.

LogicT (and thus this library as well) is adapted from the paper /Backtracking, Interleaving, and Terminating Monad Transformers/, by Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman, Amr Sabry (http://www.cs.rutgers.edu/~ccshan/logicprog/LogicT-icfp2005.pdf).

Synopsis

Documentation

The LogicState monad

type LogicState gs bs = LogicStateT gs bs Identity Source

The basic LogicVar monad, for performing backtracking computations returning values of type a

newtype LogicStateT gs bs m a Source

A monad transformer for performing backtracking computations layered over another monad m, with propagation of global and backtracking state, e.g. resp. for freshness/uniqueness and maintaining variable mappings.

Constructors

LogicStateT 

Fields

unLogicStateT :: forall r. LogicContS gs bs r m a