Copyright | (C) 2017-18 Jakub Daniel |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Jakub Daniel <jakub.daniel@protonmail.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Data.Expression.Array
Description
Synopsis
- data ArrayF a (s :: Sort) where
- select :: (ArrayF :<: f, SingI i, SingI e) => IFix f (ArraySort i e) -> IFix f i -> IFix f e
- store :: (ArrayF :<: f, SingI i, SingI e) => IFix f (ArraySort i e) -> IFix f i -> IFix f e -> IFix f (ArraySort i e)
- accesses :: forall f (s :: Sort). (ArrayF :<: f, ITraversable f) => IFix f s -> [DynamicArrayAccess f]
- toStaticallySortedArrayAccess :: forall f (i :: Sort) (e :: Sort). (SingI i, SingI e) => DynamicArrayAccess f -> Maybe (IFix f (ArraySort i e), IFix f i)
- newtype ArrayAccess f (i :: Sort) (e :: Sort) = ArrayAccess {
- getAA :: (Array f e i, Index f i)
- newtype DynamicValueArrayAccess f (i :: Sort) = DynamicValueArrayAccess {
- getDVAA :: DynamicallySorted (ArrayAccess f i)
- type DynamicArrayAccess f = DynamicallySorted (DynamicValueArrayAccess f)
Documentation
data ArrayF a (s :: Sort) where Source #
Constructors
Select :: Sing i -> Sing e -> a (ArraySort i e) -> a i -> ArrayF a e | |
Store :: Sing i -> Sing e -> a (ArraySort i e) -> a i -> a e -> ArrayF a (ArraySort i e) |
Instances
select :: (ArrayF :<: f, SingI i, SingI e) => IFix f (ArraySort i e) -> IFix f i -> IFix f e Source #
A smart constructor for select
store :: (ArrayF :<: f, SingI i, SingI e) => IFix f (ArraySort i e) -> IFix f i -> IFix f e -> IFix f (ArraySort i e) Source #
A smart constructor for store
accesses :: forall f (s :: Sort). (ArrayF :<: f, ITraversable f) => IFix f s -> [DynamicArrayAccess f] Source #
Collects pairs of arrays and indices that appear together in some select
and/or store
within an expression
toStaticallySortedArrayAccess :: forall f (i :: Sort) (e :: Sort). (SingI i, SingI e) => DynamicArrayAccess f -> Maybe (IFix f (ArraySort i e), IFix f i) Source #
Tries to convert access to an array of some sort to an access to an array of a specific sort
newtype ArrayAccess f (i :: Sort) (e :: Sort) Source #
Constructors
ArrayAccess | |
Fields
|
Instances
(IFunctor f, IShow f) => Show (ArrayAccess f i e) Source # | |
Defined in Data.Expression.Array Methods showsPrec :: Int -> ArrayAccess f i e -> ShowS # show :: ArrayAccess f i e -> String # showList :: [ArrayAccess f i e] -> ShowS # |
newtype DynamicValueArrayAccess f (i :: Sort) Source #
Constructors
DynamicValueArrayAccess | |
Fields
|
Instances
(IFunctor f, IShow f) => Show (DynamicValueArrayAccess f i) Source # | |
Defined in Data.Expression.Array Methods showsPrec :: Int -> DynamicValueArrayAccess f i -> ShowS # show :: DynamicValueArrayAccess f i -> String # showList :: [DynamicValueArrayAccess f i] -> ShowS # |
type DynamicArrayAccess f = DynamicallySorted (DynamicValueArrayAccess f) Source #