Idris2Doc : Data.List.TailRec

Data.List.TailRec

Contains:

1. Tail recursive versions of the list processing functions from
   List.

2. Extensional equality proofs that these variants are
   (extensionally) equivalent to their non-tail-recursive
   counterparts.

Note:

1. Written in one sitting, feel free to refactor

2. The proofs below also work on non-publicly exported
   definitions.  This could be due to a bug, and will need to be
   moved elsewhere if it's fixed.

Definitions

length : Lista->Nat
Totality: total
Visibility: export
length_ext : (xs : Lista) ->lengthxs=lengthxs
Totality: total
Visibility: export
take : Nat->Lista->Lista
Totality: total
Visibility: export
take_ext : (n : Nat) -> (xs : Lista) ->takenxs=takenxs
Totality: total
Visibility: export
span : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
span_ext : (p : (a->Bool)) -> (xs : Lista) ->spanpxs=spanpxs
Totality: total
Visibility: export
break : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
break_ext : (p : (a->Bool)) -> (xs : Lista) ->breakpxs=breakpxs
Totality: total
Visibility: export
split : (a->Bool) ->Lista->List1 (Lista)
Totality: total
Visibility: export
split_ext : (p : (a->Bool)) -> (xs : Lista) ->splitpxs=splitpxs
Totality: total
Visibility: export
splitAt : Nat->Lista-> (Lista, Lista)
Totality: total
Visibility: export
splitAt_ext : (n : Nat) -> (xs : Lista) ->splitAtnxs=splitAtnxs
Totality: total
Visibility: export
partition : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
intersperse : a->Lista->Lista
Totality: total
Visibility: export
intersperse_ext : (sep : a) -> (xs : Lista) ->interspersesepxs=interspersesepxs
Totality: total
Visibility: export
mapMaybe : (a->Maybeb) ->Lista->Listb
Totality: total
Visibility: export
mapMaybe_ext : (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybefxs=mapMaybefxs
Totality: total
Visibility: export
sorted : Orda=>Lista->Bool
Totality: total
Visibility: export
sorted_ext : {auto{conArg:6976} : Orda} -> (xs : Lista) ->sortedxs=sortedxs
Visibility: export
mergeBy : (a->a->Ordering) ->Lista->Lista->Lista
Totality: total
Visibility: export
mergeBy_ext : (order : (a->a->Ordering)) -> (left : Lista) -> (right : Lista) ->mergeByorderleftright=mergeByorderleftright
Visibility: export
merge : Orda=>Lista->Lista->Lista
Totality: total
Visibility: export
merge_ext : {auto{conArg:7383} : Orda} -> (left : Lista) -> (right : Lista) ->mergeleftright=mergeleftright
Visibility: export
sortBy : (a->a->Ordering) ->Lista->Lista
Totality: total
Visibility: export