data HVect : Vect k Type -> Type Heterogeneous vectors where the type index gives, element-wise,
the types of the contents.
Totality: total
Visibility: public export
Constructors:
Nil : HVect [] (::) : t -> HVect ts -> HVect (t :: ts)
Hints:
DecEq (HVect []) (DecEq t, DecEq (HVect ts)) => DecEq (HVect (t :: ts)) Eq (HVect []) (Eq t, Eq (HVect ts)) => Eq (HVect (t :: ts)) Shows len ts => Show (HVect ts)
index : (i : Fin k) -> HVect ts -> index i ts Extract an element from an HVect.
```idris example
> index 0 (the (HVect _) [1, "string"])
1
```
Totality: total
Visibility: public exportdeleteAt : (i : Fin (S l)) -> HVect ts -> HVect (deleteAt i ts) Delete an element from an HVect.
```idris example
> deleteAt 0 (the (HVect _) [1, "string"])
["string"]
```
Totality: total
Visibility: public exportreplaceAt : (i : Fin k) -> t -> HVect ts -> HVect (replaceAt i t ts) Replace an element in an HVect.
```idris example
> replaceAt 0 "firstString" (the (HVect _) [1, "string"])
["firstString", "string"]
```
Totality: total
Visibility: public exportupdateAt : (i : Fin k) -> (index i ts -> t) -> HVect ts -> HVect (replaceAt i t ts) Update an element in an HVect.
```idris example
> updateAt 0 (const True) (the (HVect _) [1, "string"])
[True, "string"]
```
Totality: total
Visibility: public export(++) : HVect ts -> HVect us -> HVect (ts ++ us) Append two `HVect`s.
```idris example
> (the (HVect _) [1]) ++ (the (HVect _) ["string"])
[1, "string"]
```
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7consInjective1 : x :: xs = y :: ys -> x = y- Totality: total
Visibility: public export consInjective2 : x :: xs = y :: ys -> xs = ys- Totality: total
Visibility: public export interface Shows : (k : Nat) -> Vect k Type -> Type- Parameters: k, ts
Methods:
shows : HVect ts -> Vect k String
Implementations:
Shows 0 [] (Show t, Shows len ts) => Shows (S len) (t :: ts)
shows : Shows k ts => HVect ts -> Vect k String- Totality: total
Visibility: public export get : (1 _ : HVect ts) -> {auto 1 _ : Elem t ts} -> t Extract an arbitrary element of the correct type.
```idris example
> get [1, "string"] {p = Here}
1
```
Totality: total
Visibility: public exportput : t -> (1 _ : HVect ts) -> {auto 1 _ : Elem t ts} -> HVect ts Replace an element with the correct type. (Homogeneous)
```idris example
> put 2 [1, "string"]
[2, "string"]
```
Totality: total
Visibility: public exporthtPut : u -> (1 _ : HVect ts) -> {auto 1 p : Elem t ts} -> HVect (replaceByElem ts p u) Replace an element with the correct type. (Heterogeneous)
```idris example
> htPut True [1, "string"] {p = Here}
[True, "string"]
```
Totality: total
Visibility: public exportupdate : (t -> t) -> (1 _ : HVect ts) -> {auto 1 _ : Elem t ts} -> HVect ts Update an element with the correct type. (Homogeneous)
```idris example
> update (const "hello world!") [1, "string"]
[1, "hello world!"]
```
Totality: total
Visibility: public exporthtUpdate : (t -> u) -> (1 _ : HVect ts) -> {auto 1 p : Elem t ts} -> HVect (replaceByElem ts p u) Update an element with the correct type. (Heterogeneous)
```idris example
> htUpdate (\_ : String => 2) [1, "string"]
[1, 2]
```
Totality: total
Visibility: public export