Idris2Doc : Data.Container.Base.Properties.Definitions

Data.Container.Base.Properties.Definitions

(source)

Definitions

dataInterfaceOnPositions : Cont-> (Type->Type) ->Type
  Convenience datatype for storing the data that a container `c` has an
interface `i` on its positions

Totality: total
Visibility: public export
Constructor: 
MkI : ((s : c.Shp) ->i (c.Poss)) ->InterfaceOnPositionsci
  For every shape `s` the set of positions `c.Pos s` has that interface
IsFinite : Cont->Type
  A container is finite when for every shape the set of positions is finite.
Examples: vectors, lists, but also finite binary trees.
Note, provision of a finite instance for trees requires a choice of a tree
traversal. (All of these choices isomorphic, but are necessary to make)

Visibility: public export
dataIsNonDep : Cont->Type
  A container is non-dependent when positions do not depend on shapes

Totality: total
Visibility: public export
Constructor: 
MkIsNonDep : (s : Type) -> (p : Type) ->IsNonDep (s!> (\{_:17235}=>p))
dataIsConst : Cont->Type
  Used in learning, where we want to know that the tangent space over a
particular parameter is equal to the parameter space itself

Totality: total
Visibility: public export
Constructor: 
ItIsConst : (p : Type) ->IsConst (p!> (\{_:17250}=>p))
dataIsFlat : Cont->Type
  Following the flat-sharp terminology

Totality: total
Visibility: public export
Constructor: 
ItIsFlat : (s : Type) ->IsFlat (s!> (\{_:17264}=> ()))
dataIsSharp : Cont->Type
Totality: total
Visibility: public export
Constructor: 
ItIsSharp : (s : Type) ->IsSharp (s!> (\{_:17278}=>Void))
NaperianCont : Type->Cont
  Local alias used solely to keep `MkIsNaperian`'s index out of raw
record-constructor form. Without this, pattern matches like
`(MkIsNaperian p :: as)` against `All IsNaperian shape` trip an
Idris 2 coverage-checker incompleteness (see issue #3721).
Definitionally equal to `Nap pos` from `Object.Instances`,
but defined here to avoid an import cycle.

Visibility: public export
dataIsNaperian : Cont->Type
  A container is Naperian when the set of shapes is `Unit`, i.e. when it
contains only one set of positions.
Examples: Scalar, UnitCont, Pair, Vect n, Stream.
Notably, Naperian does not imply Finite, as the `Stream` example shows.

Totality: total
Visibility: public export
Constructor: 
MkIsNaperian : (pos : Type) ->IsNaperian (NaperianContpos)

Hints:
IsNaperianc=>Applicative (Extc)
IsNaperianc=>SeqMonoidc
IsNaperianc=>TensorMonoidc
LogHelper : IsNaperianc=>Type
Visibility: public export
Log : (0c : Cont) ->IsNaperianc=>Type
Visibility: public export
naperianPosEq : IsNaperianc=>c.Posx=c.Posy
Visibility: public export
CubicalCont : Nat->Cont
  Will be removed later, temp fix for now as otherwise the coverage 
checker complains

Visibility: public export
dataIsCubical : Cont->Type
  A container is cubical whenever it is Finite and Naperian
Effectively, captures `Vect n` containers, up to isomorphism
Examples: for any `n : Nat`, `Vect n`. Those are all the examples, up to
isomorphism. Notably, this also includes a container whose unique set of
positions is the set of positions of a binary tree of a particular shape.
This is isomorphic to the `Vect k` container, for some `k`, assuming a
choice of tree traversal (though all of them yield the same `k`). Here
`k` corresponds to the number of positions in that binary tree

Totality: total
Visibility: public export
Constructor: 
MkIsCubical : (n : Nat) ->IsCubical (CubicalContn)
dimHelper : IsCubicalc->Nat
Visibility: public export
dim : (0c : Cont) ->IsCubicalc=>Nat
  We call dimension the size of the set of positions of a finite container 

Visibility: public export
isCubicalContEq : ({arg:17381} : IsCubicald) ->d= () !> (\{_:17388}=>Fin (dimd))
  Every cubical container is `Nap (Fin n)` with `n = dim ic` (used for rewrites).

Visibility: public export
interfaceIsFoldable : Cont->Type
  A container is foldable if `c ≃ List`
That is, there ought to exist a dependent lens `c =%> List` and back
Here we only encode one part of this

Parameters: c
Constructor: 
MkIsFoldable

Methods:
mapToList : c=%> (Nat!> (\n=>Finn))

Implementations:
IsFoldableList
IsFoldable (Vectn)
IsFoldableBinTreeLeaf
IsFoldableBinTreeNode
IsFoldableBinTree
mapToList : IsFoldablec=>c=%> (Nat!> (\n=>Finn))
Visibility: public export
interfaceIsConcrete : Cont->Type
  Many datatypes in the Idris standard library are already
concrete representations of particular containers

Parameters: c
Constructor: 
MkIsConcrete

Methods:
concreteType : Type->Type
concreteFunctor : FunctorconcreteType
fromConcreteTy : concreteTypea->Extca
toConcreteTy : Extca->concreteTypea

Implementations:
IsConcreteScalar
IsConcreteMaybe
IsConcretePair
IsConcretec=>IsConcreted=>IsConcrete (c><d)
IsConcretec=>IsConcreted=>IsConcrete (c>@d)
IsConcreteList
IsConcrete (Vectn)
IsConcreteBinTree
IsConcreteBinTreeNode
IsConcreteBinTreeLeaf
concreteType : IsConcretec=>Type->Type
Visibility: public export
concreteFunctor : {auto__con : IsConcretec} ->FunctorconcreteType
Visibility: public export
fromConcreteTy : {auto__con : IsConcretec} ->concreteTypea->Extca
Visibility: public export
toConcreteTy : {auto__con : IsConcretec} ->Extca->concreteTypea
Visibility: public export
(>#) : {auto{conArg:17549} : IsConcretec} ->concreteTypea->Extca
Visibility: public export
Fixity Declaration: prefix operator, level 0
(#>) : {auto{conArg:17571} : IsConcretec} ->Extca->concreteTypea
Visibility: public export
Fixity Declaration: prefix operator, level 0