Idris2Doc : Data.List.Suffix

Data.List.Suffix

(source)

Reexports

importpublic Data.Bool.Rewrite

Definitions

dataSuffix : Bool->Lista->Lista->Type
  Proof that a list is a (possibly strict) suffix of another list.

Performance: Values of this type are optimized to integers at runtime.

Totality: total
Visibility: public export
Constructors:
Same : SuffixFalsexsxs
  Every list is a (non-strict) suffix of itself.
Uncons : Suffixb (h::t) cs->Suffixb2tcs
  If a non-empty list `xs` is a suffix of `ys`, then the tail of
`xs` is a strict suffix of `ys`.

Hints:
Cast (Suffixbxsys) Nat
Reflexive (Lista) (SuffixFalse)
Transitive (Lista) (SuffixFalse)
Transitive (Lista) (SuffixTrue)
Uninhabited (Suffixb (h::t) [])
Uninhabited (SuffixTruexs [])
uncons : Suffixb (h::t) cs->SuffixTruetcs
  Strict version of `Uncons`

Totality: total
Visibility: public export
toNat : Suffixbxsys->Nat
  Converts a `Suffix` to a natural number, representing
the number of items dropped from the original list.

Performance: This is the identity function at runtime.

Totality: total
Visibility: public export
swapOr : Suffix (x|| Delay y) xsys->Suffix (y|| Delay x) xsys
Totality: total
Visibility: public export
orSame : Suffix (x|| Delay x) xsys->Suffixxxsys
Totality: total
Visibility: public export
orTrue : Suffix (x|| Delay True) xsys->SuffixTruexsys
Totality: total
Visibility: public export
orFalse : Suffix (x|| Delay False) xsys->Suffixxxsys
Totality: total
Visibility: public export
swapAnd : Suffix (x&& Delay y) xsys->Suffix (y&& Delay x) xsys
Totality: total
Visibility: public export
andSame : Suffix (x&& Delay x) xsys->Suffixxxsys
Totality: total
Visibility: public export
andTrue : Suffix (x&& Delay True) xsys->Suffixxxsys
Totality: total
Visibility: public export
andFalse : Suffix (x&& Delay False) xsys->SuffixFalsexsys
Totality: total
Visibility: public export
weaken : Suffixbxsys->SuffixFalsexsys
  Every `Suffix` can be converted to a non-strict one.

Performance: This is the identity function at runtime.

Totality: total
Visibility: public export
weakens : SuffixTruexsys->Suffixbxsys
  A strict `Suffix` can be converted to a non-strict one.

Performance: This is the identity function at runtime.

Totality: total
Visibility: public export
unconsBoth : Suffixb (y::ys) (x::xs) ->SuffixFalseysxs
Totality: total
Visibility: public export
unconsRight : SuffixTrueys (x::xs) ->SuffixFalseysxs
Totality: total
Visibility: public export
and1 : Suffixb1xsys->Suffix (b1&&b2) xsys
Totality: total
Visibility: public export
and2 : Suffixb2xsys->Suffix (b1&& Delay b2) xsys
Totality: total
Visibility: public export
trans : Suffixb1xsys->Suffixb2yscs->Suffix (b1|| Delay b2) xscs
  `Suffix` is a reflexive and transitive relation.

Performance: This is integer addition at runtime.

Totality: total
Visibility: public export
dataSuffixAcc : Listt->Type
Totality: total
Visibility: public export
Constructor: 
SA : (SuffixTrueysts=>SuffixAccys) ->SuffixAccts
suffixAcc : SuffixAccts
Totality: total
Visibility: export
  Syntactic sugar for describing transitive chains of suffixes.

Totality: total
Visibility: public export
Constructors:
F : (0xs : List{a:2636}) -> {auto0_ : SuffixFalsexsys} ->Linkxsys
T : (0xs : List{a:2658}) -> {auto0_ : SuffixTruexsys} ->Linkxsys
any : Suffixbxsys->Linkxsys
Totality: total
Visibility: public export
dataChain : Lista->Lista->Type
  Syntactic sugar for describing transitive chains of suffixes.

Totality: total
Visibility: public export
Constructors:
Nil : Chainxsxs
(::) : (0_ : Linkxsys) -> (0_ : Chainyszs) ->Chainxszs
dataIsStrict : Chainxsys->Type
Totality: total
Visibility: public export
Constructors:
Here : IsStrict (Txs::ys)
There : IsStrictc->IsStrict (l::c)
0weak : Chainxsys->SuffixFalsexsys
Totality: total
Visibility: public export
0strict : (c : Chainxsys) ->IsStrictc=>SuffixTruexsys
Totality: total
Visibility: public export
takePrefix : (ys : Listt) ->Suffixbxsys->Listt
Totality: total
Visibility: public export
packPrefix : Suffixbxscs->String
Totality: total
Visibility: public export