{-# LANGUAGE ExplicitNamespaces #-} {-# LANGUAGE PatternSynonyms #-} module Data.Array.Nested ( -- * Ranked arrays Ranked(Ranked), ListR(ZR, (:::)), IxR(.., ZIR, (:.:)), IIxR, ShR(.., ZSR, (:$:)), IShR, rshape, rrank, rindex, rindexPartial, rgenerate, rsumOuter1, rtranspose, rappend, rconcat, rscalar, rfromVector, rtoVector, runScalar, rrerank, rreplicate, rreplicateScal, rfromListOuter, rfromList1, rfromList1Prim, rtoListOuter, rtoList1, rslice, rrev1, rreshape, riota, rnest, runNest, -- ** Lifting orthotope operations to 'Ranked' arrays rlift, rlift2, -- ** Conversions rtoXArrayPrim, rfromXArrayPrim, rcastToShaped, rfromOrthotope, rtoOrthotope, -- * Shaped arrays Shaped(Shaped), ListS(ZS, (::$)), IxS(.., ZIS, (:.$)), IIxS, ShS(.., ZSS, (:$$)), KnownShS(..), sshape, sindex, sindexPartial, sgenerate, ssumOuter1, stranspose, sappend, sscalar, sfromVector, stoVector, sunScalar, -- TODO: sconcat? What should its type be? srerank, sreplicate, sreplicateScal, sfromListOuter, sfromList1, sfromList1Prim, stoListOuter, stoList1, sslice, srev1, sreshape, siota, snest, sunNest, -- ** Lifting orthotope operations to 'Shaped' arrays slift, slift2, -- ** Conversions stoXArrayPrim, sfromXArrayPrim, stoRanked, -- * Mixed arrays Mixed, IxX(..), IIxX, KnownShX(..), StaticShX(..), mshape, mindex, mindexPartial, mgenerate, msumOuter1, mtranspose, mappend, mconcat, mscalar, mfromVector, mtoVector, munScalar, mrerank, mreplicate, mreplicateScal, mfromListOuter, mfromList1, mfromList1Prim, mtoListOuter, mtoList1, mslice, mrev1, mreshape, miota, mnest, munNest, -- ** Lifting orthotope operations to 'Mixed' arrays mlift, mlift2, -- ** Conversions mtoXArrayPrim, mfromXArrayPrim, mtoRanked, mcastToShaped, -- * Array elements Elt, PrimElt, Primitive(..), KnownElt, -- * Further utilities / re-exports type (++), Storable, SNat, pattern SNat, pattern SZ, pattern SS, Perm(..), IsPermutation, KnownPerm(..), NumElt, FloatElt, ) where import Prelude hiding (mappend, mconcat) import Data.Array.Mixed.Internal.Arith import Data.Array.Mixed.Permutation import Data.Array.Mixed.Shape import Data.Array.Mixed.Types import Data.Array.Nested.Internal.Convert import Data.Array.Nested.Internal.Mixed import Data.Array.Nested.Internal.Ranked import Data.Array.Nested.Internal.Shape import Data.Array.Nested.Internal.Shaped import Foreign.Storable import GHC.TypeLits