PrimitiveArray-0.10.1.0: Efficient multidimensional arrays
Safe HaskellNone
LanguageHaskell2010

Data.PrimitiveArray.Index.IOC

Synopsis
  • data I
  • data O
  • data C

Documentation

data I Source #

Phantom type for Inside indices.

Instances

Instances details
SparseBucket (PointL I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.Point

IndexStream z => IndexStream (z :. Boundary k2 I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSetClasses

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. Boundary k2 I) -> LimitType (z :. Boundary k2 I) -> Stream m (z :. Boundary k2 I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. Boundary k2 I) -> LimitType (z :. Boundary k2 I) -> Stream m (z :. Boundary k2 I) Source #

IndexStream z => IndexStream (z :. BitSet I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSet0

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet I) -> LimitType (z :. BitSet I) -> Stream m (z :. BitSet I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet I) -> LimitType (z :. BitSet I) -> Stream m (z :. BitSet I) Source #

IndexStream z => IndexStream (z :. BitSet1 i I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSet1

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet1 i I) -> LimitType (z :. BitSet1 i I) -> Stream m (z :. BitSet1 i I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet1 i I) -> LimitType (z :. BitSet1 i I) -> Stream m (z :. BitSet1 i I) Source #

IndexStream z => IndexStream (z :. PInt I p) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.PhantomInt

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PInt I p) -> LimitType (z :. PInt I p) -> Stream m (z :. PInt I p) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PInt I p) -> LimitType (z :. PInt I p) -> Stream m (z :. PInt I p) Source #

IndexStream z => IndexStream (z :. PointL I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.Point

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointL I) -> LimitType (z :. PointL I) -> Stream m (z :. PointL I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointL I) -> LimitType (z :. PointL I) -> Stream m (z :. PointL I) Source #

IndexStream z => IndexStream (z :. PointR I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.Point

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointR I) -> LimitType (z :. PointR I) -> Stream m (z :. PointR I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointR I) -> LimitType (z :. PointR I) -> Stream m (z :. PointR I) Source #

IndexStream z => IndexStream (z :. Subword I) Source #

Subword I (inside)

Instance details

Defined in Data.PrimitiveArray.Index.Subword

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. Subword I) -> LimitType (z :. Subword I) -> Stream m (z :. Subword I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. Subword I) -> LimitType (z :. Subword I) -> Stream m (z :. Subword I) Source #

IndexStream (Z :. Boundary k2 I) => IndexStream (Boundary k2 I) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSetClasses

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (Boundary k2 I) -> LimitType (Boundary k2 I) -> Stream m (Boundary k2 I) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (Boundary k2 I) -> LimitType (Boundary k2 I) -> Stream m (Boundary k2 I) Source #

data O Source #

Phantom type for Outside indices.

Instances

Instances details
SparseBucket (PointL O) Source #

TODO Is this instance correct? Outside indices shrink?

Instance details

Defined in Data.PrimitiveArray.Index.Point

IndexStream z => IndexStream (z :. BitSet O) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSet0

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet O) -> LimitType (z :. BitSet O) -> Stream m (z :. BitSet O) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet O) -> LimitType (z :. BitSet O) -> Stream m (z :. BitSet O) Source #

IndexStream z => IndexStream (z :. BitSet1 i O) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSet1

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet1 i O) -> LimitType (z :. BitSet1 i O) -> Stream m (z :. BitSet1 i O) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet1 i O) -> LimitType (z :. BitSet1 i O) -> Stream m (z :. BitSet1 i O) Source #

IndexStream z => IndexStream (z :. PInt O p) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.PhantomInt

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PInt O p) -> LimitType (z :. PInt O p) -> Stream m (z :. PInt O p) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PInt O p) -> LimitType (z :. PInt O p) -> Stream m (z :. PInt O p) Source #

IndexStream z => IndexStream (z :. PointL O) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.Point

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointL O) -> LimitType (z :. PointL O) -> Stream m (z :. PointL O) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointL O) -> LimitType (z :. PointL O) -> Stream m (z :. PointL O) Source #

IndexStream z => IndexStream (z :. PointR O) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.Point

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointR O) -> LimitType (z :. PointR O) -> Stream m (z :. PointR O) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointR O) -> LimitType (z :. PointR O) -> Stream m (z :. PointR O) Source #

IndexStream z => IndexStream (z :. Subword O) Source #

Subword O (outside).

Note: streamUp really needs to use streamDownMk / streamDownStep for the right order of indices!

Instance details

Defined in Data.PrimitiveArray.Index.Subword

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. Subword O) -> LimitType (z :. Subword O) -> Stream m (z :. Subword O) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. Subword O) -> LimitType (z :. Subword O) -> Stream m (z :. Subword O) Source #

data C Source #

Phantom type for Complement indices.

Instances

Instances details
IndexStream z => IndexStream (z :. BitSet C) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.BitSet0

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet C) -> LimitType (z :. BitSet C) -> Stream m (z :. BitSet C) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. BitSet C) -> LimitType (z :. BitSet C) -> Stream m (z :. BitSet C) Source #

IndexStream z => IndexStream (z :. PInt C p) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.PhantomInt

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PInt C p) -> LimitType (z :. PInt C p) -> Stream m (z :. PInt C p) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PInt C p) -> LimitType (z :. PInt C p) -> Stream m (z :. PInt C p) Source #

IndexStream z => IndexStream (z :. PointL C) Source # 
Instance details

Defined in Data.PrimitiveArray.Index.Point

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointL C) -> LimitType (z :. PointL C) -> Stream m (z :. PointL C) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. PointL C) -> LimitType (z :. PointL C) -> Stream m (z :. PointL C) Source #

IndexStream z => IndexStream (z :. Subword C) Source #

Subword C (complement)

Instance details

Defined in Data.PrimitiveArray.Index.Subword

Methods

streamUp :: forall (m :: Type -> Type). Monad m => LimitType (z :. Subword C) -> LimitType (z :. Subword C) -> Stream m (z :. Subword C) Source #

streamDown :: forall (m :: Type -> Type). Monad m => LimitType (z :. Subword C) -> LimitType (z :. Subword C) -> Stream m (z :. Subword C) Source #