Idris2Doc : Control.DivideAndConquer

Control.DivideAndConquer(source)

The content of this module is based on the paper
A Type-Based Approach to Divide-And-Conquer Recursion in Coq
by Pedro Abreu, Benjamin Delaware, Alex Hubers, Christa Jenkins,
J. Garret Morris, and Aaron Stump
https://doi.org/10.1145/3571196

The original paper relies on Coq's impredicative Set axiom,
something we don't have access to in Idris 2. We can however
reproduce the results by ignoring the type levels

Definitions

dataListF : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : ListFax
(::) : a->x->ListFax

Hint: 
Functor (ListFa)
dataMu : (Type->Type) ->Type
Totality: total
Visibility: public export
Constructor: 
MkMu : (r->Muf) ->fr->Muf
inMu : f (Muf) ->Muf
Totality: total
Visibility: public export
outMu : Functorf=>Muf->f (Muf)
Totality: total
Visibility: public export
fold : Functorf=> (fa->a) ->Muf->a
Totality: total
Visibility: public export
KAlg : Type
Totality: total
Visibility: public export
0Mono : (KAlg->KAlg) ->Type
Totality: total
Visibility: public export
dataMu : (KAlg->KAlg) ->KAlg
Totality: total
Visibility: public export
Constructor: 
MkMu : (ax->Mufx) ->fax->Mufx
inMu : f (Muf) x->Mufx
Totality: total
Visibility: public export
outMu : Monof->Mufx->f (Muf) x
Totality: total
Visibility: public export
0FoldT : (0_ : (Type->Type)) ->KAlg->Type->Type
Totality: total
Visibility: public export
0SAlgF : (0_ : (Type->Type)) ->KAlg-> (Type->Type) ->Type
Totality: total
Visibility: public export
0SAlg : (0_ : (Type->Type)) -> (Type->Type) ->Type
Totality: total
Visibility: public export
0AlgF : (0_ : (Type->Type)) ->KAlg-> (Type->Type) ->Type
Totality: total
Visibility: public export
0Alg : (0_ : (Type->Type)) -> (Type->Type) ->Type
Totality: total
Visibility: public export
inSAlg : (0f : (Type->Type)) ->SAlgFSAlgx->SAlgx
Totality: total
Visibility: public export
monoSAlgF : (0f : (Type->Type)) ->MonoSAlgF
Totality: total
Visibility: public export
outSAlg : (0f : (Type->Type)) ->SAlgx->SAlgFSAlgx
Totality: total
Visibility: public export
inAlg : (0f : (Type->Type)) ->AlgFAlgx->Algx
Totality: total
Visibility: public export
monoAlgF : (0f : (Type->Type)) ->MonoAlgF
Totality: total
Visibility: public export
outAlg : (0f : (Type->Type)) ->Algx->AlgFAlgx
Totality: total
Visibility: public export
0DcF : (0_ : (Type->Type)) ->Type->Type
Totality: total
Visibility: public export
functorDcF : (0f : (Type->Type)) ->FunctorDcF
Totality: total
Visibility: public export
0Dc : (0_ : (Type->Type)) ->Type
Totality: total
Visibility: public export
fold : (0f : (Type->Type)) ->FoldTAlgDc
Totality: total
Visibility: public export
recordRevealT : (0_ : (Type->Type)) -> (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkRevealT : (0f : (Type->Type)) -> ((r->Dc) ->xDc) ->RevealTxr

Projection: 
.runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc

Hint: 
(0f : (Type->Type)) ->Functor (RevealTx)
.runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc
Totality: total
Visibility: public export
runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc
Totality: total
Visibility: public export
functorRevealT : (0f : (Type->Type)) ->Functor (RevealTx)
Totality: total
Visibility: public export
promote : (0f : (Type->Type)) ->Functorx=>SAlgx->Alg (RevealTx)
Totality: total
Visibility: public export
sfold : (0f : (Type->Type)) ->FoldTSAlgDc
Totality: total
Visibility: public export
inDc : (0f : (Type->Type)) ->fDc->Dc
Totality: total
Visibility: public export
0list : Type->Type
Totality: total
Visibility: public export
Nil : lista
Totality: total
Visibility: public export
(::) : a->lista->lista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
fromList : Lista->lista
Totality: total
Visibility: public export
0SpanF : Type->Type->Type
Totality: total
Visibility: public export
spanr : FoldTSAlgr-> (a->Bool) ->r->SpanFar
Totality: total
Visibility: export
zero : Nat->Nat
Totality: total
Visibility: export
matchExample : Bool
Totality: total
Visibility: export
sortExample : String->String
Totality: total
Visibility: export