Create PrimArray submodules for each rep

This commit is contained in:
Kiana Sheibani 2023-05-05 13:42:28 -04:00
parent eeb2967f6f
commit bd235754d2
Signed by: toki
GPG key ID: 6CB106C25E86A9F7
5 changed files with 516 additions and 1 deletions

View file

@ -0,0 +1,23 @@
module Data.NumIdr.PrimArray.Delayed
import Data.Vect
import Data.NP
import Data.NumIdr.Array.Rep
import Data.NumIdr.Array.Coords
%default total
public export
PrimArrayDelayed : Vect rk Nat -> Type -> Type
PrimArrayDelayed s a = Coords s -> a
export
constant : (s : Vect rk Nat) -> a -> PrimArrayDelayed s a
constant s x _ = x
export
checkRange : (s : Vect rk Nat) -> Vect rk Nat -> Maybe (Coords s)
checkRange [] [] = Just []
checkRange (d :: s) (i :: is) = (::) <$> natToFin i d <*> checkRange s is