Idris2Doc : Data.Enumerate

Data.Enumerate(source)

The content of this module is based on the paper
A Completely Unique Account of Enumeration
by Cas van der Rest, and Wouter Swierstra
https://doi.org/10.1145/3547636

Definitions

recordEnumerator : Type->Type->Type
  An (a,b)-enumerator is an enumerator for values of type b provided
that we already know how to enumerate subterms of type a

Totality: total
Visibility: export
Constructor: 
MkEnumerator : (Lista->Listb) ->Enumeratorab

Projection: 
.runEnumerator : Enumeratorab->Lista->Listb

Hints:
Alternative (Enumeratora)
Applicative (Enumeratora)
Functor (Enumeratora)
Monad (Enumeratora)
pairWith : (b->c->d) ->Enumeratorab->Enumeratorac->Enumeratorad
  This interleaving is fair, unlike one defined using concatMap.
Cf. paper for definition of fairness

Totality: total
Visibility: export
pair : Enumeratorab->Enumeratorac->Enumeratora (b, c)
Totality: total
Visibility: export
const : Listb->Enumeratorab
  Like `pure` but returns more than one result

Totality: total
Visibility: export
rec : Enumeratoraa
  The construction of recursive substructures is memoised by
simply passing the result of the recursive call

Totality: total
Visibility: export
sized : Enumeratoraa->Nat->Lista
  Assuming that the enumerator is building one layer of term,
sized e n will produce a list of values of depth n

Totality: total
Visibility: export
stream : Enumeratoraa->Stream (Lista)
  Assuming that the enumerator is building one layer of term,
stream e will produce a list of increasingly deep values

Totality: total
Visibility: export
regular : (d : DescList) ->Enumerator (Fixd) (Fixd)
Totality: total
Visibility: export