DFSSolver

class DFSSolver[Prg, S, M[_], A](interpret: (Prg, S) => M[S], assess: S => List[Prg] \/ A)(implicit ev: StashRestore[S])
class Object
trait Matchable
class Any

Type members

Types

type State = (S, List[List[Prg]])

Value members

Concrete methods

def init(s: S): State \/ A
def next(s: State)(implicit M0: BindRec[M], M1: MonadTell[M, Int]): M[Option[(A, State)]]
def solutions(s: S)(implicit M0: BindRec[M], M1: MonadTell[M, Int]): StreamT[M, A]

Also outputs the number of backtracks.

Also outputs the number of backtracks.