Idris2Doc : Data.List.Views.Extra

Data.List.Views.Extra

Definitions

dataBalanced : Nat->Nat->Type
  Proof that two numbers differ by at most one

Totality: total
Visibility: public export
Constructors:
BalancedZ : Balanced00
BalancedL : Balanced10
BalancedRec : Balancednm->Balanced (Sn) (Sm)

Hint: 
Uninhabited (Balanced0 (Sk))
balancedPred : Balanced (Sx) (Sy) ->Balancedxy
Totality: total
Visibility: export
mkBalancedEq : n=m->Balancednm
Totality: total
Visibility: export
mkBalancedL : n=Sm->Balancednm
Totality: total
Visibility: export
dataSplitBalanced : Lista->Type
  View of a list split into two halves

The lengths of the lists are guaranteed to differ by at most one

Totality: total
Visibility: public export
Constructor: 
MkSplitBal : Balanced (lengthxs) (lengthys) ->SplitBalanced (xs++ys)
splitBalanced : (input : Lista) ->SplitBalancedinput
  Covering function for the `SplitBalanced`

Constructs the view in linear time

Totality: total
Visibility: export
dataVList : Lista->Type
  The `VList` view allows us to recurse on the middle of a list,
inspecting the front and back elements simultaneously.

Totality: total
Visibility: public export
Constructors:
VNil : VList []
VOne : VList [x]
VCons : Lazy (VListxs) ->VList (x:: (xs++ [y]))
vList : (xs : Lista) ->VListxs
  Covering function for `VList`
Constructs the view in linear time.

Totality: total
Visibility: export
dataLazyFilterRec : Lista->Type
  Lazy filtering of a list based on a predicate.

Totality: total
Visibility: public export
Constructors:
Exhausted : (skip : Lista) ->LazyFilterRecskip
Found : (skip : Lista) -> (head : a) -> Lazy (LazyFilterRecrest) ->LazyFilterRec (skip++ (head::rest))
lazyFilterRec : (a->Bool) -> (xs : Lista) ->LazyFilterRecxs
  Covering function for the LazyFilterRec view.
Constructs the view lazily in linear time.

Totality: total
Visibility: export