Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Array.Nested.Ranked.Shape
Synopsis
- data ListR (n :: Nat) i where
- data UnconsListRRes i (n1 :: Natural) = (n + 1) ~ n1 => UnconsListRRes (ListR n i) i
- listrUncons :: forall (n1 :: Nat) i. ListR n1 i -> Maybe (UnconsListRRes i n1)
- listrEqRank :: forall (n :: Nat) i (n' :: Nat). ListR n i -> ListR n' i -> Maybe (n :~: n')
- listrEqual :: forall i (n :: Nat) (n' :: Nat). Eq i => ListR n i -> ListR n' i -> Maybe (n :~: n')
- listrShow :: forall (n :: Nat) i. (i -> ShowS) -> ListR n i -> ShowS
- listrLength :: forall (n :: Nat) i. ListR n i -> Int
- listrRank :: forall (n :: Nat) i. ListR n i -> SNat n
- listrAppend :: forall (n :: Nat) i (m :: Nat). ListR n i -> ListR m i -> ListR (n + m) i
- listrFromList :: [i] -> (forall (n :: Nat). ListR n i -> r) -> r
- listrHead :: forall (n :: Natural) i. ListR (n + 1) i -> i
- listrTail :: forall (n :: Natural) i. ListR (n + 1) i -> ListR n i
- listrInit :: forall (n :: Natural) i. ListR (n + 1) i -> ListR n i
- listrLast :: forall (n :: Natural) i. ListR (n + 1) i -> i
- listrCast :: forall (n' :: Nat) (n :: Nat) i. SNat n' -> ListR n i -> ListR n' i
- listrIndex :: forall (k :: Natural) (n :: Natural) i. (k + 1) <= n => SNat k -> ListR n i -> i
- listrZip :: forall (n :: Nat) i j. ListR n i -> ListR n j -> ListR n (i, j)
- listrZipWith :: forall i j k (n :: Nat). (i -> j -> k) -> ListR n i -> ListR n j -> ListR n k
- listrPermutePrefix :: forall i (n :: Nat). [Int] -> ListR n i -> ListR n i
- newtype IxR (n :: Nat) i = IxR (ListR n i)
- pattern ZIR :: () => n ~ 0 => IxR n i
- pattern (:.:) :: forall {n1} {i} n. () => (n + 1) ~ n1 => i -> IxR n i -> IxR n1 i
- type IIxR (n :: Nat) = IxR n Int
- ixrLength :: forall (sh :: Nat) i. IxR sh i -> Int
- ixrRank :: forall (n :: Nat) i. IxR n i -> SNat n
- ixrZero :: forall (n :: Nat). SNat n -> IIxR n
- ixrHead :: forall (n :: Natural) i. IxR (n + 1) i -> i
- ixrTail :: forall (n :: Natural) i. IxR (n + 1) i -> IxR n i
- ixrInit :: forall (n :: Natural) i. IxR (n + 1) i -> IxR n i
- ixrLast :: forall (n :: Natural) i. IxR (n + 1) i -> i
- ixrCast :: forall (n' :: Nat) (n :: Nat) i. SNat n' -> IxR n i -> IxR n' i
- ixrAppend :: forall (n :: Nat) (m :: Nat) i. IxR n i -> IxR m i -> IxR (n + m) i
- ixrZip :: forall (n :: Nat) i j. IxR n i -> IxR n j -> IxR n (i, j)
- ixrZipWith :: forall i j k (n :: Nat). (i -> j -> k) -> IxR n i -> IxR n j -> IxR n k
- ixrPermutePrefix :: forall (n :: Nat) i. [Int] -> IxR n i -> IxR n i
- newtype ShR (n :: Nat) i = ShR (ListR n i)
- pattern ZSR :: () => n ~ 0 => ShR n i
- pattern (:$:) :: forall {n1} {i} n. () => (n + 1) ~ n1 => i -> ShR n i -> ShR n1 i
- type IShR (n :: Nat) = ShR n Int
- shrEqRank :: forall (n :: Nat) i (n' :: Nat). ShR n i -> ShR n' i -> Maybe (n :~: n')
- shrEqual :: forall i (n :: Nat) (n' :: Nat). Eq i => ShR n i -> ShR n' i -> Maybe (n :~: n')
- shrLength :: forall (sh :: Nat) i. ShR sh i -> Int
- shrRank :: forall (n :: Nat) i. ShR n i -> SNat n
- shrSize :: forall (n :: Nat). IShR n -> Int
- shrHead :: forall (n :: Natural) i. ShR (n + 1) i -> i
- shrTail :: forall (n :: Natural) i. ShR (n + 1) i -> ShR n i
- shrInit :: forall (n :: Natural) i. ShR (n + 1) i -> ShR n i
- shrLast :: forall (n :: Natural) i. ShR (n + 1) i -> i
- shrCast :: forall (n' :: Nat) (n :: Nat) i. SNat n' -> ShR n i -> ShR n' i
- shrAppend :: forall (n :: Nat) (m :: Nat) i. ShR n i -> ShR m i -> ShR (n + m) i
- shrZip :: forall (n :: Nat) i j. ShR n i -> ShR n j -> ShR n (i, j)
- shrZipWith :: forall i j k (n :: Nat). (i -> j -> k) -> ShR n i -> ShR n j -> ShR n k
- shrPermutePrefix :: forall (n :: Nat) i. [Int] -> ShR n i -> ShR n i
- listrCastWithName :: forall (n' :: Nat) (n :: Nat) i. String -> SNat n' -> ListR n i -> ListR n' i
Ranked lists
data ListR (n :: Nat) i where Source #
Constructors
ZR :: forall i. ListR 0 i | |
(:::) :: forall (n1 :: Natural) {i}. i -> ListR n1 i -> ListR (n1 + 1) i infixr 3 |
Instances
Foldable (ListR n) Source # | |
Defined in Data.Array.Nested.Ranked.Shape Methods fold :: Monoid m => ListR n m -> m # foldMap :: Monoid m => (a -> m) -> ListR n a -> m # foldMap' :: Monoid m => (a -> m) -> ListR n a -> m # foldr :: (a -> b -> b) -> b -> ListR n a -> b # foldr' :: (a -> b -> b) -> b -> ListR n a -> b # foldl :: (b -> a -> b) -> b -> ListR n a -> b # foldl' :: (b -> a -> b) -> b -> ListR n a -> b # foldr1 :: (a -> a -> a) -> ListR n a -> a # foldl1 :: (a -> a -> a) -> ListR n a -> a # elem :: Eq a => a -> ListR n a -> Bool # maximum :: Ord a => ListR n a -> a # minimum :: Ord a => ListR n a -> a # | |
Functor (ListR n) Source # | |
KnownNat n => IsList (ListR n i) Source # | Untyped: length is checked at runtime. |
Show i => Show (ListR n i) Source # | |
NFData i => NFData (ListR n i) Source # | |
Defined in Data.Array.Nested.Ranked.Shape | |
Eq i => Eq (ListR n i) Source # | |
Ord i => Ord (ListR n i) Source # | |
type Item (ListR n i) Source # | |
Defined in Data.Array.Nested.Ranked.Shape |
data UnconsListRRes i (n1 :: Natural) Source #
Constructors
(n + 1) ~ n1 => UnconsListRRes (ListR n i) i |
listrUncons :: forall (n1 :: Nat) i. ListR n1 i -> Maybe (UnconsListRRes i n1) Source #
listrEqRank :: forall (n :: Nat) i (n' :: Nat). ListR n i -> ListR n' i -> Maybe (n :~: n') Source #
This checks only whether the ranks are equal, not whether the actual values are.
listrEqual :: forall i (n :: Nat) (n' :: Nat). Eq i => ListR n i -> ListR n' i -> Maybe (n :~: n') Source #
This compares the lists for value equality.
listrFromList :: [i] -> (forall (n :: Nat). ListR n i -> r) -> r Source #
listrCast :: forall (n' :: Nat) (n :: Nat) i. SNat n' -> ListR n i -> ListR n' i Source #
Performs a runtime check that the lengths are identical.
listrIndex :: forall (k :: Natural) (n :: Natural) i. (k + 1) <= n => SNat k -> ListR n i -> i Source #
listrZipWith :: forall i j k (n :: Nat). (i -> j -> k) -> ListR n i -> ListR n j -> ListR n k Source #
Ranked indices
newtype IxR (n :: Nat) i Source #
An index into a rank-typed array.
Instances
Foldable (IxR n) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape Methods fold :: Monoid m => IxR n m -> m # foldMap :: Monoid m => (a -> m) -> IxR n a -> m # foldMap' :: Monoid m => (a -> m) -> IxR n a -> m # foldr :: (a -> b -> b) -> b -> IxR n a -> b # foldr' :: (a -> b -> b) -> b -> IxR n a -> b # foldl :: (b -> a -> b) -> b -> IxR n a -> b # foldl' :: (b -> a -> b) -> b -> IxR n a -> b # foldr1 :: (a -> a -> a) -> IxR n a -> a # foldl1 :: (a -> a -> a) -> IxR n a -> a # elem :: Eq a => a -> IxR n a -> Bool # maximum :: Ord a => IxR n a -> a # minimum :: Ord a => IxR n a -> a # | |||||
Functor (IxR n) Source # | |||||
Generic (IxR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape Associated Types
| |||||
KnownNat n => IsList (IxR n i) Source # | Untyped: length is checked at runtime. | ||||
Show i => Show (IxR n i) Source # | |||||
NFData i => NFData (IxR sh i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape | |||||
Eq i => Eq (IxR n i) Source # | |||||
Ord i => Ord (IxR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape | |||||
type Rep (IxR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape | |||||
type Item (IxR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape |
pattern (:.:) :: forall {n1} {i} n. () => (n + 1) ~ n1 => i -> IxR n i -> IxR n1 i infixr 3 Source #
ixrCast :: forall (n' :: Nat) (n :: Nat) i. SNat n' -> IxR n i -> IxR n' i Source #
Performs a runtime check that the lengths are identical.
Ranked shapes
newtype ShR (n :: Nat) i Source #
Instances
Foldable (ShR n) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape Methods fold :: Monoid m => ShR n m -> m # foldMap :: Monoid m => (a -> m) -> ShR n a -> m # foldMap' :: Monoid m => (a -> m) -> ShR n a -> m # foldr :: (a -> b -> b) -> b -> ShR n a -> b # foldr' :: (a -> b -> b) -> b -> ShR n a -> b # foldl :: (b -> a -> b) -> b -> ShR n a -> b # foldl' :: (b -> a -> b) -> b -> ShR n a -> b # foldr1 :: (a -> a -> a) -> ShR n a -> a # foldl1 :: (a -> a -> a) -> ShR n a -> a # elem :: Eq a => a -> ShR n a -> Bool # maximum :: Ord a => ShR n a -> a # minimum :: Ord a => ShR n a -> a # | |||||
Functor (ShR n) Source # | |||||
Generic (ShR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape Associated Types
| |||||
KnownNat n => IsList (ShR n i) Source # | Untyped: length is checked at runtime. | ||||
Show i => Show (ShR n i) Source # | |||||
NFData i => NFData (ShR sh i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape | |||||
Eq i => Eq (ShR n i) Source # | |||||
Ord i => Ord (ShR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape | |||||
type Rep (ShR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape | |||||
type Item (ShR n i) Source # | |||||
Defined in Data.Array.Nested.Ranked.Shape |
pattern (:$:) :: forall {n1} {i} n. () => (n + 1) ~ n1 => i -> ShR n i -> ShR n1 i infixr 3 Source #
shrEqRank :: forall (n :: Nat) i (n' :: Nat). ShR n i -> ShR n' i -> Maybe (n :~: n') Source #
This checks only whether the ranks are equal, not whether the actual values are.
shrEqual :: forall i (n :: Nat) (n' :: Nat). Eq i => ShR n i -> ShR n' i -> Maybe (n :~: n') Source #
This compares the shapes for value equality.
shrSize :: forall (n :: Nat). IShR n -> Int Source #
The number of elements in an array described by this shape.
shrCast :: forall (n' :: Nat) (n :: Nat) i. SNat n' -> ShR n i -> ShR n' i Source #
Performs a runtime check that the lengths are identical.