packages feed

fixed-vector 0.8.1.0 → 0.9.0.0

raw patch · 10 files changed

+315/−379 lines, 10 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

- Data.Vector.Fixed: Cons :: a -> VecList n a -> VecList (S n) a
- Data.Vector.Fixed: Nil :: VecList Z a
- Data.Vector.Fixed: instance (Arity n, Monoid a) => Monoid (VecList n a)
- Data.Vector.Fixed: instance (Arity n, NFData a) => NFData (VecList n a)
- Data.Vector.Fixed: instance (Eq a, Arity n) => Eq (VecList n a)
- Data.Vector.Fixed: instance (Ord a, Arity n) => Ord (VecList n a)
- Data.Vector.Fixed: instance (Show a, Arity n) => Show (VecList n a)
- Data.Vector.Fixed: instance (Storable a, Arity n) => Storable (VecList n a)
- Data.Vector.Fixed: instance Arity n => Applicative (VecList n)
- Data.Vector.Fixed: instance Arity n => Foldable (VecList n)
- Data.Vector.Fixed: instance Arity n => Functor (VecList n)
- Data.Vector.Fixed: instance Arity n => Traversable (VecList n)
- Data.Vector.Fixed: instance Arity n => Vector (VecList n) a
- Data.Vector.Fixed: instance Arity n => VectorN VecList n a
- Data.Vector.Fixed: instance Data a => Data (Empty a)
- Data.Vector.Fixed: instance Data a => Data (Only a)
- Data.Vector.Fixed: instance Eq a => Eq (Only a)
- Data.Vector.Fixed: instance Foldable Empty
- Data.Vector.Fixed: instance Foldable Only
- Data.Vector.Fixed: instance Functor Empty
- Data.Vector.Fixed: instance Functor Only
- Data.Vector.Fixed: instance Monoid a => Monoid (Only a)
- Data.Vector.Fixed: instance NFData (Empty a)
- Data.Vector.Fixed: instance NFData a => NFData (Only a)
- Data.Vector.Fixed: instance Ord a => Ord (Only a)
- Data.Vector.Fixed: instance Show a => Show (Only a)
- Data.Vector.Fixed: instance Storable a => Storable (Only a)
- Data.Vector.Fixed: instance Traversable Empty
- Data.Vector.Fixed: instance Traversable Only
- Data.Vector.Fixed: instance Typeable Empty
- Data.Vector.Fixed: instance Typeable Only
- Data.Vector.Fixed: instance Typeable VecList
- Data.Vector.Fixed: instance Vector Empty a
- Data.Vector.Fixed: instance Vector Only a
- Data.Vector.Fixed: unFun :: Fun n a b -> Fn n a b
- Data.Vector.Fixed.Boxed: instance (Arity n, Eq a) => Eq (Vec n a)
- Data.Vector.Fixed.Boxed: instance (Arity n, Monoid a) => Monoid (Vec n a)
- Data.Vector.Fixed.Boxed: instance (Arity n, NFData a) => NFData (Vec n a)
- Data.Vector.Fixed.Boxed: instance (Arity n, Ord a) => Ord (Vec n a)
- Data.Vector.Fixed.Boxed: instance (Arity n, Show a) => Show (Vec n a)
- Data.Vector.Fixed.Boxed: instance (Storable a, Arity n) => Storable (Vec n a)
- Data.Vector.Fixed.Boxed: instance (Typeable n, Arity n, Data a) => Data (Vec n a)
- Data.Vector.Fixed.Boxed: instance Arity n => Applicative (Vec n)
- Data.Vector.Fixed.Boxed: instance Arity n => Foldable (Vec n)
- Data.Vector.Fixed.Boxed: instance Arity n => Functor (Vec n)
- Data.Vector.Fixed.Boxed: instance Arity n => IVector (Vec n) a
- Data.Vector.Fixed.Boxed: instance Arity n => MVector (MVec n) a
- Data.Vector.Fixed.Boxed: instance Arity n => Traversable (Vec n)
- Data.Vector.Fixed.Boxed: instance Arity n => Vector (Vec n) a
- Data.Vector.Fixed.Boxed: instance Arity n => VectorN Vec n a
- Data.Vector.Fixed.Boxed: instance Typeable MVec
- Data.Vector.Fixed.Boxed: instance Typeable Vec
- Data.Vector.Fixed.Cont: WitSum :: WitSum n k a b
- Data.Vector.Fixed.Cont: data WitSum n k a b
- Data.Vector.Fixed.Cont: instance (NatIso k (n - 1), ToPeano (n - 1) ~ k, ToPeano n ~ S k, n ~ (1 + (n - 1))) => NatIso (S k) n
- Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a) => Vector ((,,) b c) a
- Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a) => Vector ((,,,) b c d) a
- Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a, e ~ a) => Vector ((,,,,) b c d e) a
- Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a, e ~ a, f ~ a) => Vector ((,,,,,) b c d e f) a
- Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a, e ~ a, f ~ a, g ~ a) => Vector ((,,,,,,) b c d e f g) a
- Data.Vector.Fixed.Cont: instance Arity Z
- Data.Vector.Fixed.Cont: instance Arity n => Applicative (ContVec n)
- Data.Vector.Fixed.Cont: instance Arity n => Applicative (Fun n a)
- Data.Vector.Fixed.Cont: instance Arity n => Arity (S n)
- Data.Vector.Fixed.Cont: instance Arity n => Foldable (ContVec n)
- Data.Vector.Fixed.Cont: instance Arity n => Functor (ContVec n)
- Data.Vector.Fixed.Cont: instance Arity n => Functor (Fun n a)
- Data.Vector.Fixed.Cont: instance Arity n => Index Z (S n)
- Data.Vector.Fixed.Cont: instance Arity n => Monad (Fun n a)
- Data.Vector.Fixed.Cont: instance Arity n => Traversable (ContVec n)
- Data.Vector.Fixed.Cont: instance Arity n => Vector (ContVec n) a
- Data.Vector.Fixed.Cont: instance Arity n => VectorN ContVec n a
- Data.Vector.Fixed.Cont: instance Index k n => Index (S k) (S n)
- Data.Vector.Fixed.Cont: instance NatIso Z 0
- Data.Vector.Fixed.Cont: instance RealFloat a => Vector Complex a
- Data.Vector.Fixed.Cont: instance Typeable S
- Data.Vector.Fixed.Cont: instance Typeable Z
- Data.Vector.Fixed.Cont: instance Vector Proxy a
- Data.Vector.Fixed.Cont: instance b ~ a => Vector ((,) b) a
- Data.Vector.Fixed.Cont: unFun :: Fun n a b -> Fn n a b
- Data.Vector.Fixed.Cont: witSum :: Arity n => WitSum n k a b
- Data.Vector.Fixed.Monomorphic: instance (VectorMono v, a ~ VectorElm v, Arity (DimMono v)) => Vector (Mono v) a
- Data.Vector.Fixed.Monomorphic: unFun :: Fun n a b -> Fn n a b
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a) => IVector (Vec n) a
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a) => MVector (MVec n) a
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a) => Vector (Vec n) a
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a) => VectorN Vec n a
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a, Eq a) => Eq (Vec n a)
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a, Monoid a) => Monoid (Vec n a)
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a, NFData a) => NFData (Vec n a)
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a, Ord a) => Ord (Vec n a)
- Data.Vector.Fixed.Primitive: instance (Arity n, Prim a, Show a) => Show (Vec n a)
- Data.Vector.Fixed.Primitive: instance (Storable a, Prim a, Arity n) => Storable (Vec n a)
- Data.Vector.Fixed.Primitive: instance (Typeable n, Arity n, Prim a, Data a) => Data (Vec n a)
- Data.Vector.Fixed.Primitive: instance Typeable MVec
- Data.Vector.Fixed.Primitive: instance Typeable Vec
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a) => IVector (Vec n) a
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a) => MVector (MVec n) a
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a) => Storable (Vec n a)
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a) => Vector (Vec n) a
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a) => VectorN Vec n a
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a, Eq a) => Eq (Vec n a)
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a, Monoid a) => Monoid (Vec n a)
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a, NFData a) => NFData (Vec n a)
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a, Ord a) => Ord (Vec n a)
- Data.Vector.Fixed.Storable: instance (Arity n, Storable a, Show a) => Show (Vec n a)
- Data.Vector.Fixed.Storable: instance (Typeable n, Arity n, Storable a, Data a) => Data (Vec n a)
- Data.Vector.Fixed.Storable: instance Typeable MVec
- Data.Vector.Fixed.Storable: instance Typeable Vec
- Data.Vector.Fixed.Unboxed: instance (Arity n, IVector (Vec n) a) => IVector (Vec n) (Complex a)
- Data.Vector.Fixed.Unboxed: instance (Arity n, IVector (Vec n) a, IVector (Vec n) b) => IVector (Vec n) (a, b)
- Data.Vector.Fixed.Unboxed: instance (Arity n, MVector (MVec n) a) => MVector (MVec n) (Complex a)
- Data.Vector.Fixed.Unboxed: instance (Arity n, MVector (MVec n) a, MVector (MVec n) b) => MVector (MVec n) (a, b)
- Data.Vector.Fixed.Unboxed: instance (Arity n, MVector (MVec n) a, MVector (MVec n) b, MVector (MVec n) c) => MVector (MVec n) (a, b, c)
- Data.Vector.Fixed.Unboxed: instance (Arity n, Show a, Unbox n a) => Show (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Arity n, Unbox n a, NFData a) => NFData (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Arity n, Vector (Vec n) a, Vector (Vec n) b, Vector (Vec n) c, IVector (Vec n) a, IVector (Vec n) b, IVector (Vec n) c) => IVector (Vec n) (a, b, c)
- Data.Vector.Fixed.Unboxed: instance (Storable a, Unbox n a) => Storable (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Typeable n, Unbox n a, Data a) => Data (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Unbox n a, Eq a) => Eq (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Unbox n a, Monoid a) => Monoid (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Unbox n a, Ord a) => Ord (Vec n a)
- Data.Vector.Fixed.Unboxed: instance (Unbox n a, Unbox n b) => Unbox n (a, b)
- Data.Vector.Fixed.Unboxed: instance (Unbox n a, Unbox n b, Unbox n c) => Unbox n (a, b, c)
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) ()
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Bool
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Char
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Double
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Float
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Int
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Int16
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Int32
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Int64
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Int8
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Word
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Word16
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Word32
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Word64
- Data.Vector.Fixed.Unboxed: instance Arity n => IVector (Vec n) Word8
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) ()
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Bool
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Char
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Double
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Float
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Int
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Int16
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Int32
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Int64
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Int8
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Word
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Word16
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Word32
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Word64
- Data.Vector.Fixed.Unboxed: instance Arity n => MVector (MVec n) Word8
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n ()
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Bool
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Char
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Double
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Float
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Int
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Int16
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Int32
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Int64
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Int8
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Word
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Word16
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Word32
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Word64
- Data.Vector.Fixed.Unboxed: instance Arity n => Unbox n Word8
- Data.Vector.Fixed.Unboxed: instance Typeable MVec
- Data.Vector.Fixed.Unboxed: instance Typeable Vec
- Data.Vector.Fixed.Unboxed: instance Unbox n a => Unbox n (Complex a)
- Data.Vector.Fixed.Unboxed: instance Unbox n a => Vector (Vec n) a
- Data.Vector.Fixed.Unboxed: instance Unbox n a => VectorN Vec n a
+ Data.Vector.Fixed: [Cons] :: a -> VecList n a -> VecList (S n) a
+ Data.Vector.Fixed: [Nil] :: VecList Z a
+ Data.Vector.Fixed: [unFun] :: Fun n a b -> Fn n a b
+ Data.Vector.Fixed: infixr 1 <|
+ Data.Vector.Fixed: instance (Data.Vector.Fixed.Cont.Arity n, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Data.Vector.Fixed.VecList n a)
+ Data.Vector.Fixed: instance (Data.Vector.Fixed.Cont.Arity n, GHC.Base.Monoid a) => GHC.Base.Monoid (Data.Vector.Fixed.VecList n a)
+ Data.Vector.Fixed: instance (Foreign.Storable.Storable a, Data.Vector.Fixed.Cont.Arity n) => Foreign.Storable.Storable (Data.Vector.Fixed.VecList n a)
+ Data.Vector.Fixed: instance (GHC.Classes.Eq a, Data.Vector.Fixed.Cont.Arity n) => GHC.Classes.Eq (Data.Vector.Fixed.VecList n a)
+ Data.Vector.Fixed: instance (GHC.Classes.Ord a, Data.Vector.Fixed.Cont.Arity n) => GHC.Classes.Ord (Data.Vector.Fixed.VecList n a)
+ Data.Vector.Fixed: instance (GHC.Show.Show a, Data.Vector.Fixed.Cont.Arity n) => GHC.Show.Show (Data.Vector.Fixed.VecList n a)
+ Data.Vector.Fixed: instance Control.DeepSeq.NFData (Data.Vector.Fixed.Empty a)
+ Data.Vector.Fixed: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed: instance Data.Data.Data a => Data.Data.Data (Data.Vector.Fixed.Empty a)
+ Data.Vector.Fixed: instance Data.Data.Data a => Data.Data.Data (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed: instance Data.Foldable.Foldable Data.Vector.Fixed.Empty
+ Data.Vector.Fixed: instance Data.Foldable.Foldable Data.Vector.Fixed.Only
+ Data.Vector.Fixed: instance Data.Traversable.Traversable Data.Vector.Fixed.Empty
+ Data.Vector.Fixed: instance Data.Traversable.Traversable Data.Vector.Fixed.Only
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Arity n => Data.Foldable.Foldable (Data.Vector.Fixed.VecList n)
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Arity n => Data.Traversable.Traversable (Data.Vector.Fixed.VecList n)
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.VecList n) a
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.VectorN Data.Vector.Fixed.VecList n a
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Applicative (Data.Vector.Fixed.VecList n)
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Functor (Data.Vector.Fixed.VecList n)
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Vector Data.Vector.Fixed.Empty a
+ Data.Vector.Fixed: instance Data.Vector.Fixed.Cont.Vector Data.Vector.Fixed.Only a
+ Data.Vector.Fixed: instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed: instance GHC.Base.Functor Data.Vector.Fixed.Empty
+ Data.Vector.Fixed: instance GHC.Base.Functor Data.Vector.Fixed.Only
+ Data.Vector.Fixed: instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed: instance GHC.Show.Show a => GHC.Show.Show (Data.Vector.Fixed.Only a)
+ Data.Vector.Fixed.Boxed: instance (Data.Typeable.Internal.Typeable n, Data.Vector.Fixed.Cont.Arity n, Data.Data.Data a) => Data.Data.Data (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance (Data.Vector.Fixed.Cont.Arity n, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance (Data.Vector.Fixed.Cont.Arity n, GHC.Base.Monoid a) => GHC.Base.Monoid (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance (Data.Vector.Fixed.Cont.Arity n, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance (Data.Vector.Fixed.Cont.Arity n, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance (Data.Vector.Fixed.Cont.Arity n, GHC.Show.Show a) => GHC.Show.Show (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance (Foreign.Storable.Storable a, Data.Vector.Fixed.Cont.Arity n) => Foreign.Storable.Storable (Data.Vector.Fixed.Boxed.Vec n a)
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Foldable.Foldable (Data.Vector.Fixed.Boxed.Vec n)
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Traversable.Traversable (Data.Vector.Fixed.Boxed.Vec n)
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Boxed.Vec n) a
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.VectorN Data.Vector.Fixed.Boxed.Vec n a
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Boxed.Vec n) a
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Boxed.MVec n) a
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Applicative (Data.Vector.Fixed.Boxed.Vec n)
+ Data.Vector.Fixed.Boxed: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Functor (Data.Vector.Fixed.Boxed.Vec n)
+ Data.Vector.Fixed.Cont: [unFun] :: Fun n a b -> Fn n a b
+ Data.Vector.Fixed.Cont: instance (Data.Vector.Fixed.Cont.NatIso k (n GHC.TypeLits.- 1), Data.Vector.Fixed.Cont.ToPeano (n GHC.TypeLits.- 1) ~ k, Data.Vector.Fixed.Cont.ToPeano n ~ Data.Vector.Fixed.Cont.S k, n ~ (1 GHC.TypeLits.+ (n GHC.TypeLits.- 1))) => Data.Vector.Fixed.Cont.NatIso (Data.Vector.Fixed.Cont.S k) n
+ Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a) => Data.Vector.Fixed.Cont.Vector ((,,) b c) a
+ Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a) => Data.Vector.Fixed.Cont.Vector ((,,,) b c d) a
+ Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a, e ~ a) => Data.Vector.Fixed.Cont.Vector ((,,,,) b c d e) a
+ Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a, e ~ a, f ~ a) => Data.Vector.Fixed.Cont.Vector ((,,,,,) b c d e f) a
+ Data.Vector.Fixed.Cont: instance (b ~ a, c ~ a, d ~ a, e ~ a, f ~ a, g ~ a) => Data.Vector.Fixed.Cont.Vector ((,,,,,,) b c d e f g) a
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity Data.Vector.Fixed.Cont.Z
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => Data.Foldable.Foldable (Data.Vector.Fixed.Cont.ContVec n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => Data.Traversable.Traversable (Data.Vector.Fixed.Cont.ContVec n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.Arity (Data.Vector.Fixed.Cont.S n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.Index Data.Vector.Fixed.Cont.Z (Data.Vector.Fixed.Cont.S n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Cont.ContVec n) a
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Cont.VectorN Data.Vector.Fixed.Cont.ContVec n a
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Applicative (Data.Vector.Fixed.Cont.ContVec n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Applicative (Data.Vector.Fixed.Cont.Fun n a)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Functor (Data.Vector.Fixed.Cont.ContVec n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Functor (Data.Vector.Fixed.Cont.Fun n a)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Arity n => GHC.Base.Monad (Data.Vector.Fixed.Cont.Fun n a)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Index k n => Data.Vector.Fixed.Cont.Index (Data.Vector.Fixed.Cont.S k) (Data.Vector.Fixed.Cont.S n)
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.NatIso Data.Vector.Fixed.Cont.Z 0
+ Data.Vector.Fixed.Cont: instance Data.Vector.Fixed.Cont.Vector Data.Proxy.Proxy a
+ Data.Vector.Fixed.Cont: instance GHC.Float.RealFloat a => Data.Vector.Fixed.Cont.Vector Data.Complex.Complex a
+ Data.Vector.Fixed.Cont: instance b ~ a => Data.Vector.Fixed.Cont.Vector ((,) b) a
+ Data.Vector.Fixed.Monomorphic: [unFun] :: Fun n a b -> Fn n a b
+ Data.Vector.Fixed.Monomorphic: instance (Data.Vector.Fixed.Monomorphic.VectorMono v, a ~ Data.Vector.Fixed.Monomorphic.VectorElm v, Data.Vector.Fixed.Cont.Arity (Data.Vector.Fixed.Monomorphic.DimMono v)) => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Monomorphic.Mono v) a
+ Data.Vector.Fixed.Monomorphic: type family VectorElm v :: *;
+ Data.Vector.Fixed.Monomorphic: }
+ Data.Vector.Fixed.Primitive: instance (Data.Typeable.Internal.Typeable n, Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, Data.Data.Data a) => Data.Data.Data (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a) => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Primitive.Vec n) a
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a) => Data.Vector.Fixed.Cont.VectorN Data.Vector.Fixed.Primitive.Vec n a
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a) => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Primitive.Vec n) a
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a) => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Primitive.MVec n) a
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, GHC.Base.Monoid a) => GHC.Base.Monoid (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Primitive: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, GHC.Show.Show a) => GHC.Show.Show (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Primitive: instance (Foreign.Storable.Storable a, Data.Primitive.Types.Prim a, Data.Vector.Fixed.Cont.Arity n) => Foreign.Storable.Storable (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Typeable.Internal.Typeable n, Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, Data.Data.Data a) => Data.Data.Data (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a) => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Storable.Vec n) a
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a) => Data.Vector.Fixed.Cont.VectorN Data.Vector.Fixed.Storable.Vec n a
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a) => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Storable.Vec n) a
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a) => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Storable.MVec n) a
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a) => Foreign.Storable.Storable (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, GHC.Base.Monoid a) => GHC.Base.Monoid (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Storable: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, GHC.Show.Show a) => GHC.Show.Show (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Typeable.Internal.Typeable n, Data.Vector.Fixed.Unboxed.Unbox n a, Data.Data.Data a) => Data.Data.Data (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Unboxed.Vec n) a, Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Unboxed.Vec n) b, Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Unboxed.Vec n) c, Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) a, Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) b, Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) c) => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) (a, b, c)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) a) => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) (Data.Complex.Complex a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) a, Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) b) => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) (a, b)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) a) => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) (Data.Complex.Complex a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) a, Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) b) => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) (a, b)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) a, Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) b, Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) c) => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) (a, b, c)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, Data.Vector.Fixed.Unboxed.Unbox n a, Control.DeepSeq.NFData a) => Control.DeepSeq.NFData (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Cont.Arity n, GHC.Show.Show a, Data.Vector.Fixed.Unboxed.Unbox n a) => GHC.Show.Show (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Unboxed.Unbox n a, Data.Vector.Fixed.Unboxed.Unbox n b) => Data.Vector.Fixed.Unboxed.Unbox n (a, b)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Unboxed.Unbox n a, Data.Vector.Fixed.Unboxed.Unbox n b, Data.Vector.Fixed.Unboxed.Unbox n c) => Data.Vector.Fixed.Unboxed.Unbox n (a, b, c)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Unboxed.Unbox n a, GHC.Base.Monoid a) => GHC.Base.Monoid (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Unboxed.Unbox n a, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Data.Vector.Fixed.Unboxed.Unbox n a, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance (Foreign.Storable.Storable a, Data.Vector.Fixed.Unboxed.Unbox n a) => Foreign.Storable.Storable (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) ()
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Int.Int16
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Int.Int32
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Int.Int64
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Int.Int8
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Types.Bool
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Types.Char
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Types.Double
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Types.Float
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Types.Int
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Types.Word
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Word.Word16
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Word.Word32
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Word.Word64
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.IVector (Data.Vector.Fixed.Unboxed.Vec n) GHC.Word.Word8
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) ()
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Int.Int16
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Int.Int32
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Int.Int64
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Int.Int8
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Types.Bool
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Types.Char
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Types.Double
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Types.Float
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Types.Int
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Types.Word
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Word.Word16
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Word.Word32
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Word.Word64
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Mutable.MVector (Data.Vector.Fixed.Unboxed.MVec n) GHC.Word.Word8
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n ()
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Int.Int16
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Int.Int32
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Int.Int64
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Int.Int8
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Types.Bool
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Types.Char
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Types.Double
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Types.Float
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Types.Int
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Types.Word
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Word.Word16
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Word.Word32
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Word.Word64
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Cont.Arity n => Data.Vector.Fixed.Unboxed.Unbox n GHC.Word.Word8
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Unboxed.Unbox n a => Data.Vector.Fixed.Cont.Vector (Data.Vector.Fixed.Unboxed.Vec n) a
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Unboxed.Unbox n a => Data.Vector.Fixed.Cont.VectorN Data.Vector.Fixed.Unboxed.Vec n a
+ Data.Vector.Fixed.Unboxed: instance Data.Vector.Fixed.Unboxed.Unbox n a => Data.Vector.Fixed.Unboxed.Unbox n (Data.Complex.Complex a)
- Data.Vector.Fixed: (!) :: Vector v a => v a -> Int -> a
+ Data.Vector.Fixed: (!) :: (Vector v a) => v a -> Int -> a
- Data.Vector.Fixed: all :: Vector v a => (a -> Bool) -> v a -> Bool
+ Data.Vector.Fixed: all :: (Vector v a) => (a -> Bool) -> v a -> Bool
- Data.Vector.Fixed: and :: Vector v Bool => v Bool -> Bool
+ Data.Vector.Fixed: and :: (Vector v Bool) => v Bool -> Bool
- Data.Vector.Fixed: any :: Vector v a => (a -> Bool) -> v a -> Bool
+ Data.Vector.Fixed: any :: (Vector v a) => (a -> Bool) -> v a -> Bool
- Data.Vector.Fixed: defaultAlignemnt :: Storable a => v a -> Int
+ Data.Vector.Fixed: defaultAlignemnt :: forall a v. Storable a => v a -> Int
- Data.Vector.Fixed: defaultSizeOf :: (Storable a, Vector v a) => v a -> Int
+ Data.Vector.Fixed: defaultSizeOf :: forall a v. (Storable a, Vector v a) => v a -> Int
- Data.Vector.Fixed: find :: Vector v a => (a -> Bool) -> v a -> Maybe a
+ Data.Vector.Fixed: find :: (Vector v a) => (a -> Bool) -> v a -> Maybe a
- Data.Vector.Fixed: fromList :: Vector v a => [a] -> v a
+ Data.Vector.Fixed: fromList :: (Vector v a) => [a] -> v a
- Data.Vector.Fixed: fromList' :: Vector v a => [a] -> v a
+ Data.Vector.Fixed: fromList' :: (Vector v a) => [a] -> v a
- Data.Vector.Fixed: fromListM :: Vector v a => [a] -> Maybe (v a)
+ Data.Vector.Fixed: fromListM :: (Vector v a) => [a] -> Maybe (v a)
- Data.Vector.Fixed: generate :: Vector v a => (Int -> a) -> v a
+ Data.Vector.Fixed: generate :: (Vector v a) => (Int -> a) -> v a
- Data.Vector.Fixed: length :: Arity (Dim v) => v a -> Int
+ Data.Vector.Fixed: length :: forall v a. Arity (Dim v) => v a -> Int
- Data.Vector.Fixed: or :: Vector v Bool => v Bool -> Bool
+ Data.Vector.Fixed: or :: (Vector v Bool) => v Bool -> Bool
- Data.Vector.Fixed: scanl1 :: Vector v a => (a -> a -> a) -> v a -> v a
+ Data.Vector.Fixed: scanl1 :: (Vector v a) => (a -> a -> a) -> v a -> v a
- Data.Vector.Fixed: toList :: Vector v a => v a -> [a]
+ Data.Vector.Fixed: toList :: (Vector v a) => v a -> [a]
- Data.Vector.Fixed: unfoldr :: Vector v a => (b -> (a, b)) -> b -> v a
+ Data.Vector.Fixed: unfoldr :: (Vector v a) => (b -> (a, b)) -> b -> v a
- Data.Vector.Fixed.Cont: accum :: Arity n => (forall k. t (S k) -> a -> t k) -> (t Z -> b) -> t n -> Fn n a b
+ Data.Vector.Fixed.Cont: accum :: Arity n => (forall k. t (S k) -> a -> t k) -> (t Z -> b) -> t n -> Fun n a b
- Data.Vector.Fixed.Cont: apply :: Arity n => (forall k. t (S k) -> (a, t k)) -> t n -> Fn n a b -> b
+ Data.Vector.Fixed.Cont: apply :: Arity n => (forall k. t (S k) -> (a, t k)) -> t n -> ContVec n a
- Data.Vector.Fixed.Cont: curryMany :: Arity n => Fun (Add n k) a b -> Fun n a (Fun k a b)
+ Data.Vector.Fixed.Cont: curryMany :: forall n k a b. Arity n => Fun (Add n k) a b -> Fun n a (Fun k a b)
- Data.Vector.Fixed.Cont: foldl1 :: Arity (S n) => (a -> a -> a) -> ContVec (S n) a -> a
+ Data.Vector.Fixed.Cont: foldl1 :: (Arity (S n)) => (a -> a -> a) -> ContVec (S n) a -> a
- Data.Vector.Fixed.Cont: fromList' :: Arity n => [a] -> ContVec n a
+ Data.Vector.Fixed.Cont: fromList' :: forall n a. Arity n => [a] -> ContVec n a
- Data.Vector.Fixed.Cont: fromListM :: Arity n => [a] -> Maybe (ContVec n a)
+ Data.Vector.Fixed.Cont: fromListM :: forall n a. Arity n => [a] -> Maybe (ContVec n a)
- Data.Vector.Fixed.Cont: generate :: Arity n => (Int -> a) -> ContVec n a
+ Data.Vector.Fixed.Cont: generate :: (Arity n) => (Int -> a) -> ContVec n a
- Data.Vector.Fixed.Cont: gfoldl :: (Vector v a, Data a) => (forall x y. Data x => c (x -> y) -> x -> c y) -> (forall x. x -> c x) -> v a -> c (v a)
+ Data.Vector.Fixed.Cont: gfoldl :: forall c v a. (Vector v a, Data a) => (forall x y. Data x => c (x -> y) -> x -> c y) -> (forall x. x -> c x) -> v a -> c (v a)
- Data.Vector.Fixed.Cont: gunfold :: (Vector v a, Data a) => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> con -> c (v a)
+ Data.Vector.Fixed.Cont: gunfold :: forall con c v a. (Vector v a, Data a) => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> con -> c (v a)
- Data.Vector.Fixed.Cont: imap :: Arity n => (Int -> a -> b) -> ContVec n a -> ContVec n b
+ Data.Vector.Fixed.Cont: imap :: (Arity n) => (Int -> a -> b) -> ContVec n a -> ContVec n b
- Data.Vector.Fixed.Cont: izipWith :: Arity n => (Int -> a -> b -> c) -> ContVec n a -> ContVec n b -> ContVec n c
+ Data.Vector.Fixed.Cont: izipWith :: (Arity n) => (Int -> a -> b -> c) -> ContVec n a -> ContVec n b -> ContVec n c
- Data.Vector.Fixed.Cont: izipWith3 :: Arity n => (Int -> a -> b -> c -> d) -> ContVec n a -> ContVec n b -> ContVec n c -> ContVec n d
+ Data.Vector.Fixed.Cont: izipWith3 :: (Arity n) => (Int -> a -> b -> c -> d) -> ContVec n a -> ContVec n b -> ContVec n c -> ContVec n d
- Data.Vector.Fixed.Cont: length :: Arity (Dim v) => v a -> Int
+ Data.Vector.Fixed.Cont: length :: forall v a. Arity (Dim v) => v a -> Int
- Data.Vector.Fixed.Cont: map :: Arity n => (a -> b) -> ContVec n a -> ContVec n b
+ Data.Vector.Fixed.Cont: map :: (Arity n) => (a -> b) -> ContVec n a -> ContVec n b
- Data.Vector.Fixed.Cont: replicate :: Arity n => a -> ContVec n a
+ Data.Vector.Fixed.Cont: replicate :: (Arity n) => a -> ContVec n a
- Data.Vector.Fixed.Cont: scanl :: Arity n => (b -> a -> b) -> b -> ContVec n a -> ContVec (S n) b
+ Data.Vector.Fixed.Cont: scanl :: (Arity n) => (b -> a -> b) -> b -> ContVec n a -> ContVec (S n) b
- Data.Vector.Fixed.Cont: scanl1 :: Arity n => (a -> a -> a) -> ContVec n a -> ContVec n a
+ Data.Vector.Fixed.Cont: scanl1 :: (Arity n) => (a -> a -> a) -> ContVec n a -> ContVec n a
- Data.Vector.Fixed.Cont: toList :: Arity n => ContVec n a -> [a]
+ Data.Vector.Fixed.Cont: toList :: (Arity n) => ContVec n a -> [a]
- Data.Vector.Fixed.Cont: uncurryMany :: Arity n => Fun n a (Fun k a b) -> Fun (Add n k) a b
+ Data.Vector.Fixed.Cont: uncurryMany :: Arity n => Fun (Add n k) a b -> Fun n a (Fun k a b)
- Data.Vector.Fixed.Cont: zipWith :: Arity n => (a -> b -> c) -> ContVec n a -> ContVec n b -> ContVec n c
+ Data.Vector.Fixed.Cont: zipWith :: (Arity n) => (a -> b -> c) -> ContVec n a -> ContVec n b -> ContVec n c
- Data.Vector.Fixed.Cont: zipWith3 :: Arity n => (a -> b -> c -> d) -> ContVec n a -> ContVec n b -> ContVec n c -> ContVec n d
+ Data.Vector.Fixed.Cont: zipWith3 :: (Arity n) => (a -> b -> c -> d) -> ContVec n a -> ContVec n b -> ContVec n c -> ContVec n d
- Data.Vector.Fixed.Monomorphic: class Arity (DimMono v) => VectorMono v where type family VectorElm v :: * basicIndex v i = Mono v ! i
+ Data.Vector.Fixed.Monomorphic: class Arity (DimMono v) => VectorMono v where type VectorElm v :: * basicIndex v i = Mono v ! i where {
- Data.Vector.Fixed.Monomorphic: reverse :: VectorMono v => v -> v
+ Data.Vector.Fixed.Monomorphic: reverse :: (VectorMono v) => v -> v
- Data.Vector.Fixed.Mutable: class Arity (DimM v) => MVector v a
+ Data.Vector.Fixed.Mutable: class (Arity (DimM v)) => MVector v a
- Data.Vector.Fixed.Mutable: constructVec :: (Arity (Dim v), IVector v a) => Fun (Dim v) a (v a)
+ Data.Vector.Fixed.Mutable: constructVec :: forall v a. (Arity (Dim v), IVector v a) => Fun (Dim v) a (v a)
- Data.Vector.Fixed.Mutable: inspectVec :: (Arity (Dim v), IVector v a) => v a -> Fun (Dim v) a b -> b
+ Data.Vector.Fixed.Mutable: inspectVec :: forall v a b. (Arity (Dim v), IVector v a) => v a -> Fun (Dim v) a b -> b
- Data.Vector.Fixed.Mutable: lengthM :: Arity (DimM v) => v s a -> Int
+ Data.Vector.Fixed.Mutable: lengthM :: forall v s a. (Arity (DimM v)) => v s a -> Int

Files

− ChangeLog
@@ -1,166 +0,0 @@-Changes in 0.8.1.0--  * `find` function added.---Changes in 0.8.0.0--  * NFData instances for all data type.--  * Storable instances for all data types and default implementation of-    Storable's methods added.--  * {i,}zipWith3 and {i,}zipWithM_ added.---Changes in 0.7.0.3--  * GHC 7.10 support---Changes in 0.7.0.0--  * Type level addition for unary numbers added--  * `concat` function added--  * More consistent naming for functions for working with `Fun`---Changes in 0.6.4.0--  * Isomorphism between Peano numbers and Nat added. (GHC >= 7.8)---Changes in 0.6.3.1--  * Documentation fixes.---Changes in 0.6.3.0--  * Left scans added.---Changes in 0.6.2.0--  * `Vec1' type synonym for boxed/unboxed/etc. vectors added.--  * Vector instance for Data.Typeable.Proxy (GHC >= 7.8)---Changes in 0.6.1.1--  * GHC 7.8 support---Changes in 0.6.1.0--  * `distribute', `collect' and their monadic variants added.---Changes in 0.6.0.0--  * Data instance for all array-based vectors added.--  * Storable instance added for `Storable.Vec'.--  * Monoid instances added for all vectors.---Changes in 0.5.1.0--  * Zero-element vector `Empty' is added.---Changes in 0.5.0.0--  * `ContVec' now behaves like normal vector. `Arity' type class is-    reworked. `Id' data type is removed.--  * Construction of vector reworked.--  * `reverse', `snoc', `consV', `fold' and `foldMap' are added.--  * Type changing maps and zips are added.--  * Vector indexing with type level numbers is added.--  * Twan van Laarhoven's lens added. (`element' and `elementTy')--  * Ord instances added to vector data types defined in the library.---Changes in 0.4.4.0--  * Functor and Applicative instances are added to Id.---Changes in 0.4.3.0--  * Typeable instance for S and Z added.---Changes in 0.4.2.0--  * 1-tuple `Only' added.--  * fromList' and fromListM added.--  * apply functions from Arity type class generalized.---Changes in 0.4.1.0--  * `cons' function added.--  * Getter for `Fun' data type added.---Changes in 0.4.0.0--  * Wrapper for monomorphics vectors is added.--  * `VecList' is reimplemented as GADT and constructors are exported.--  * Constructor of `ContVecT' is exported--  * Empty `ContVecT' is implemented as `empty'.--  * Typeable, Foldable and Traversable instances are added where-    appropriate---Changes in 0.3.0.0--  * Vector type class definition is moved to the D.V.F.Cont module.--  * Indexing function restored.--  * `unfoldr' added.---Changes in 0.2.0.0--  * Continuation-based vector added.--  * Right fold added.--  * tailWith, convertContinuation, and ! from-    Data.Vector.Fixed removed.--  * Vector instance for tuples added.---Changes in 0.1.2--  * imap, imapM, ifoldl, ifoldM, zipWithM, izipWithM-    functions are added.--  * VectorN type class added.---Changes in 0.1.1--  * foldM and tailWith added. Type synonyms for numbers up to 6 are-    added. Fun is reexported from Data.Vector.Fixed.
+ ChangeLog.md view
@@ -0,0 +1,176 @@+Changes in 0.9.0.0++  * Simplification of `Arity` type class. This change shouldn't affect client+    code.++  * Support for GHC < 7.8 is droppped.++  * Fixed bug in `any`.+++Changes in 0.8.1.0++  * `find` function added.+++Changes in 0.8.0.0++  * NFData instances for all data type.++  * Storable instances for all data types and default implementation of+    Storable's methods added.++  * {i,}zipWith3 and {i,}zipWithM_ added.+++Changes in 0.7.0.3++  * GHC 7.10 support+++Changes in 0.7.0.0++  * Type level addition for unary numbers added++  * `concat` function added++  * More consistent naming for functions for working with `Fun`+++Changes in 0.6.4.0++  * Isomorphism between Peano numbers and Nat added. (GHC >= 7.8)+++Changes in 0.6.3.1++  * Documentation fixes.+++Changes in 0.6.3.0++  * Left scans added.+++Changes in 0.6.2.0++  * `Vec1` type synonym for boxed/unboxed/etc. vectors added.++  * Vector instance for Data.Typeable.Proxy (GHC >= 7.8)+++Changes in 0.6.1.1++  * GHC 7.8 support+++Changes in 0.6.1.0++  * `distribute` `collect` and their monadic variants added.+++Changes in 0.6.0.0++  * Data instance for all array-based vectors added.++  * Storable instance added for `Storable.Vec`.++  * Monoid instances added for all vectors.+++Changes in 0.5.1.0++  * Zero-element vector `Empty'`is added.+++Changes in 0.5.0.0++  * `ContVec` now behaves like normal vector. `Arity` type class is+    reworked. `Id' data type is removed.++  * Construction of vector reworked.++  * `reverse`, `snoc`, `consV`, `fold` and `foldMap` are added.++  * Type changing maps and zips are added.++  * Vector indexing with type level numbers is added.++  * Twan van Laarhoven's lens added. (`element` and `elementTy`)++  * Ord instances added to vector data types defined in the library.+++Changes in 0.4.4.0++  * Functor and Applicative instances are added to Id.+++Changes in 0.4.3.0++  * Typeable instance for S and Z added.+++Changes in 0.4.2.0++  * 1-tuple `Only` added.++  * `fromList'` and fromListM added.++  * apply functions from Arity type class generalized.+++Changes in 0.4.1.0++  * `cons` function added.++  * Getter for `Fun` data type added.+++Changes in 0.4.0.0++  * Wrapper for monomorphics vectors is added.++  * `VecList` is reimplemented as GADT and constructors are exported.++  * Constructor of `ContVecT` is exported++  * Empty `ContVecT` is implemented as `empty`.++  * Typeable, Foldable and Traversable instances are added where+    appropriate+++Changes in 0.3.0.0++  * Vector type class definition is moved to the D.V.F.Cont module.++  * Indexing function restored.++  * `unfoldr` added.+++Changes in 0.2.0.0++  * Continuation-based vector added.++  * Right fold added.++  * tailWith, convertContinuation, and ! from+    Data.Vector.Fixed removed.++  * Vector instance for tuples added.+++Changes in 0.1.2++  * imap, imapM, ifoldl, ifoldM, zipWithM, izipWithM+    functions are added.++  * VectorN type class added.+++Changes in 0.1.1++  * foldM and tailWith added. Type synonyms for numbers up to 6 are+    added. Fun is reexported from Data.Vector.Fixed.
Data/Vector/Fixed.hs view
@@ -270,11 +270,11 @@ type instance Dim (VecList n) = n  instance Arity n => Vector (VecList n) a where-  construct = Fun $ accum+  construct = accum     (\(T_List f) a -> T_List (f . Cons a))     (\(T_List f)   -> f Nil)     (T_List id :: T_List a n n)-  inspect v (Fun f) = apply step (Flip v) f+  inspect v = inspect $ apply step (Flip v)     where       step :: Flip VecList a (S k)  -> (a, Flip VecList a k)       step (Flip (Cons a xs)) = (a, Flip xs)
Data/Vector/Fixed/Boxed.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP                   #-} {-# LANGUAGE StandaloneDeriving    #-} {-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE FlexibleInstances     #-}@@ -46,13 +45,8 @@ -- | Mutable unboxed vector with fixed length newtype MVec n s a = MVec (MutableArray s a) -#if __GLASGOW_HASKELL__ >= 708 deriving instance Typeable Vec deriving instance Typeable MVec-#else-deriving instance Typeable2 Vec-deriving instance Typeable3 MVec-#endif  type Vec1 = Vec (S Z) type Vec2 = Vec (S (S Z))
Data/Vector/Fixed/Cont.hs view
@@ -1,5 +1,5 @@+{-# LANGUAGE InstanceSigs #-} {-# LANGUAGE TypeOperators         #-}-{-# LANGUAGE CPP                   #-} {-# LANGUAGE EmptyDataDecls        #-} {-# LANGUAGE DeriveDataTypeable    #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -9,10 +9,7 @@ {-# LANGUAGE ScopedTypeVariables   #-} {-# LANGUAGE Rank2Types            #-} {-# LANGUAGE GADTs #-}--- Needed for NatIso-#if __GLASGOW_HASKELL__ >= 708 {-# LANGUAGE DataKinds, TypeOperators, UndecidableInstances #-}-#endif -- | -- API for Church-encoded vectors. Implementation of function from -- "Data.Vector.Fixed" module uses these function internally in order@@ -24,11 +21,9 @@   , Add     -- ** Isomorphism between Peano number and Nats     -- $natiso-#if __GLASGOW_HASKELL__ >= 708   , NatIso   , ToPeano   , ToNat-#endif     -- ** Synonyms for small numerals   , N1   , N2@@ -42,14 +37,12 @@   , Arity(..)   , apply   , applyM-  , WitSum(..)     -- ** Combinators   , constFun   , curryFirst   , uncurryFirst   , curryLast   , curryMany-  , uncurryMany   , apLast   , shuffleFun   , withFun@@ -143,12 +136,11 @@  import Control.Applicative (Applicative(..),(<$>),(<|>)) import Control.Monad       (liftM)+import Data.Coerce import Data.Complex        (Complex(..)) import Data.Data           (Typeable,Data)-#if __GLASGOW_HASKELL__ >= 708 import Data.Typeable       (Proxy(..)) import GHC.TypeLits-#endif import qualified Data.Foldable    as F import qualified Data.Traversable as F @@ -188,7 +180,6 @@ -- impossible to define their properties inductively. So Peano number -- are used everywhere. -#if __GLASGOW_HASKELL__ >= 708 -- | Isomorphism between two representations of natural numbers class (ToNat a ~ b, ToPeano b ~ a) => NatIso (a :: *) (b :: Nat) where @@ -208,9 +199,9 @@          , ToPeano  n    ~ S k          , n ~ (1 + (n - 1))    -- n is positive          ) => NatIso (S k) n where-#endif  + ---------------------------------------------------------------- -- N-ary functions ----------------------------------------------------------------@@ -226,21 +217,20 @@   instance Arity n => Functor (Fun n a) where-  fmap (f :: b -> c) (Fun g0 :: Fun n a b)-     = Fun $ accum-             (\(T_fmap g) a -> T_fmap (g a))-             (\(T_fmap x) -> f x)-             (T_fmap g0 :: T_fmap a b n)+  fmap f fun+     = accum (\(T_Flip g) a -> T_Flip (curryFirst g a))+             (\(T_Flip x)   -> f (unFun x))+             (T_Flip fun)   {-# INLINE fmap #-}  instance Arity n => Applicative (Fun n a) where-  pure (x :: x) = Fun $ accum (\(T_pure r) (_::a) -> T_pure r)-                              (\(T_pure r)        -> r)-                              (T_pure x :: T_pure x n)+  pure x = accum (\Proxy _ -> Proxy)+                 (\Proxy   -> x)+                  Proxy   (Fun f0 :: Fun n a (p -> q)) <*> (Fun g0 :: Fun n a p)-    = Fun $ accum (\(T_ap f g) a -> T_ap (f a) (g a))-                  (\(T_ap f g)   -> f g)-                  (T_ap f0 g0 :: T_ap a (p -> q) p n)+    = accum (\(T_ap f g) a -> T_ap (f a) (g a))+            (\(T_ap f g)   -> f g)+            (T_ap f0 g0 :: T_ap a (p -> q) p n)   {-# INLINE pure  #-}   {-# INLINE (<*>) #-} @@ -251,8 +241,6 @@   {-# INLINE (>>=)  #-}  -newtype T_fmap a b   n = T_fmap (Fn n a b)-data    T_pure a     n = T_pure a data    T_ap   a b c n = T_ap (Fn n a b) (Fn n a c)  @@ -268,7 +256,7 @@   accum :: (forall k. t (S k) -> a -> t k) -- ^ Fold function         -> (t Z -> b)                      -- ^ Extract result of fold         -> t n                             -- ^ Initial value-        -> Fn n a b                        -- ^ Reduction function+        -> Fun n a b                       -- ^ Reduction function    -- | Apply all parameters to the function.   applyFun :: (forall k. t (S k) -> (a, t k)) -- ^ Get value to apply to function@@ -288,31 +276,29 @@   -- | Arity of function.   arity :: n -> Int +   -- | Reverse order of parameters.   reverseF :: Fun n a b -> Fun n a b+  -- | Uncurry /n/ first parameters of n-ary function+  uncurryMany :: Fun (Add n k) a b -> Fun n a (Fun k a b)+     -- | Worker function for 'gunfold'   gunfoldF :: (Data a)            => (forall b x. Data b => c (b -> x) -> c x)            -> T_gunfold c r a n -> c r-  -- | Proof that `Fn (n+k) a b ~ Fn n a (Fn k a b)`-  witSum :: WitSum n k a b   newtype T_gunfold c r a n = T_gunfold (c (Fn n a r)) --- | Value that carry proof that `Fn (Add n k) a b ~ Fn n a (Fn k a b)`-data WitSum n k a b where-  WitSum :: (Fn (Add n k) a b ~ Fn n a (Fn k a b)) => WitSum n k a b   -- | Apply all parameters to the function. apply :: Arity n       => (forall k. t (S k) -> (a, t k)) -- ^ Get value to apply to function       -> t n                             -- ^ Initial value-      -> Fn n a b                        -- ^ N-ary function-      -> b+      -> ContVec n a                     -- ^ N-ary function {-# INLINE apply #-}-apply step z f = fst $ applyFun step z f+apply step z = ContVec $ \(Fun f) -> fst $ applyFun step z f  -- | Apply all parameters to the function using monadic actions. applyM :: (Monad m, Arity n)@@ -324,7 +310,7 @@                 return v  instance Arity Z where-  accum     _ g t = g t+  accum     _ g t = Fun $ g t   applyFun  _ t h = (h,t)   applyFunM _ t   = return (empty, t)   arity  _ = 0@@ -334,13 +320,13 @@   {-# INLINE arity     #-}   reverseF = id   gunfoldF _ (T_gunfold c) = c-  {-# INLINE reverseF #-}-  {-# INLINE gunfoldF #-}-  witSum = WitSum-  {-# INLINE witSum #-}+  uncurryMany = coerce+  {-# INLINE reverseF    #-}+  {-# INLINE gunfoldF    #-}+  {-# INLINE uncurryMany #-}  instance Arity n => Arity (S n) where-  accum     f g t = \a -> accum  f g (f t a)+  accum     f g t = Fun $ \a -> unFun $ accum f g (f t a)   applyFun  f t h = case f t of (a,u) -> applyFun f u (h a)   applyFunM f t   = do (a,t')   <- f t                        (vec,tZ) <- applyFunM f t'@@ -352,15 +338,14 @@   {-# INLINE arity     #-}   reverseF f   = Fun $ \a -> unFun (reverseF $ apLast f a)   gunfoldF f c = gunfoldF f (apGunfold f c)-  {-# INLINE reverseF #-}-  {-# INLINE gunfoldF #-}-  witSum = witSumWorker-  {-# INLINE witSum #-}--witSumWorker :: forall n k a b. Arity n => WitSum (S n) k a b-{-# INLINE witSumWorker #-}-witSumWorker = case witSum :: WitSum n k a b of-                 WitSum -> WitSum+  +  uncurryMany :: forall k a b. Fun (Add (S n) k) a b -> Fun (S n) a (Fun k a b)+  uncurryMany f+    = coerce+     (fmap uncurryMany (curryFirst f) :: a -> Fun n a (Fun k a b))+  {-# INLINE reverseF    #-}+  {-# INLINE gunfoldF    #-}+  {-# INLINE uncurryMany #-}  apGunfold :: Data a           => (forall b x. Data b => c (b -> x) -> c x)@@ -370,7 +355,11 @@ {-# INLINE apGunfold #-}  +newtype T_Flip    a b n = T_Flip (Fun n a b)+newtype T_Counter n     = T_Counter Int ++ ---------------------------------------------------------------- -- Combinators ----------------------------------------------------------------@@ -382,20 +371,20 @@  -- | Curry first parameter of n-ary function curryFirst :: Fun (S n) a b -> a -> Fun n a b-curryFirst (Fun f) x = Fun (f x)+curryFirst = coerce {-# INLINE curryFirst #-}  -- | Uncurry first parameter of n-ary function uncurryFirst :: (a -> Fun n a b) -> Fun (S n) a b-uncurryFirst f = Fun $ fmap unFun f+uncurryFirst = coerce {-# INLINE uncurryFirst #-}  -- | Curry last parameter of n-ary function-curryLast :: forall n a b. Arity n => Fun (S n) a b -> Fun n a (a -> b)+curryLast :: Arity n => Fun (S n) a b -> Fun n a (a -> b) {-# INLINE curryLast #-}-curryLast (Fun f0) = Fun $ accum (\(T_fun f) a -> T_fun (f a))-                                 (\(T_fun f)   -> f)-                                 (T_fun f0 :: T_fun a b n)+curryLast (Fun f0) = accum (\(T_fun f) a -> T_fun (f a))+                           (\(T_fun f)   -> f)+                           (T_fun f0)  newtype T_fun a b n = T_fun (Fn (S n) a b) @@ -403,22 +392,13 @@ curryMany :: forall n k a b. Arity n           => Fun (Add n k) a b -> Fun n a (Fun k a b) {-# INLINE curryMany #-}-curryMany (Fun f0) = Fun $ accum+curryMany (Fun f0) = accum   (\(T_curry f) a -> T_curry (f a))-  (\(T_curry f) -> Fun f :: Fun k a b)+  (\(T_curry f) -> Fun f)   ( T_curry f0 :: T_curry a b k n)  newtype T_curry a b k n = T_curry (Fn (Add n k) a b) --- | Uncurry /n/ first parameters of n-ary function-uncurryMany :: forall n k a b. Arity n-            => Fun n a (Fun k a b) -> Fun (Add n k) a b-{-# INLINE uncurryMany #-}-uncurryMany f =-  case witSum :: WitSum n k a b of-    WitSum ->-      case fmap unFun f :: Fun n a (Fn k a b) of-        Fun g -> Fun g   -- | Apply last parameter to function. Unlike 'apFun' we need to@@ -432,15 +412,14 @@ withFun f fun = Fun $ \a -> unFun $ f $ curryFirst fun a {-# INLINE withFun #-} - -- | Move function parameter to the result of N-ary function.-shuffleFun :: forall n a b r. Arity n+shuffleFun :: Arity n            => (b -> Fun n a r) -> Fun n a (b -> r) {-# INLINE shuffleFun #-} shuffleFun f0-  = Fun $ accum (\(T_shuffle f) a -> T_shuffle $ \x -> f x a)-                (\(T_shuffle f)   -> f)-                (T_shuffle (fmap unFun f0) :: T_shuffle b a r n)+  = accum (\(T_shuffle f) a -> T_shuffle $ \x -> f x a)+          (\(T_shuffle f)   -> f)+          (T_shuffle (fmap unFun f0))  newtype T_shuffle x a r n = T_shuffle (x -> Fn n a r) @@ -518,10 +497,10 @@ type instance Dim (ContVec n) = n  instance Arity n => Vector (ContVec n) a where-  construct = Fun $-    accum (\(T_mkN f) a -> T_mkN (f . cons a))-          (\(T_mkN f)   -> f empty)-          (T_mkN id :: T_mkN n a n)+  construct = accum+    (\(T_mkN f) a -> T_mkN (f . cons a))+    (\(T_mkN f)   -> f empty)+    (T_mkN id)   inspect (ContVec c) f = c f   {-# INLINE construct #-}   {-# INLINE inspect   #-}@@ -553,9 +532,9 @@      => Fun n a b -> Fun n (f a) (f b) {-# INLINE sequenceAF #-} sequenceAF (Fun f0)-  = Fun $ accum (\(T_sequenceA f) a -> T_sequenceA (f <*> a))-                (\(T_sequenceA f)   -> f)-                (T_sequenceA (pure f0) :: T_sequenceA f a b n)+  = accum (\(T_sequenceA f) a -> T_sequenceA (f <*> a))+          (\(T_sequenceA f)   -> f)+          (T_sequenceA (pure f0) :: T_sequenceA f a b n)  newtype T_sequenceA f a b n = T_sequenceA (f (Fn n a b)) @@ -578,12 +557,10 @@  -- | Convert list to continuation-based vector. Will throw error if --   list is shorter than resulting vector.-fromList :: forall n a. Arity n => [a] -> ContVec n a+fromList :: Arity n => [a] -> ContVec n a {-# INLINE fromList #-}-fromList xs = ContVec $ \(Fun fun) ->-  apply step-        (T_flist xs :: T_flist a n)-        fun+fromList xs =+  apply step (T_flist xs)   where     step (T_flist []    ) = error "Data.Vector.Fixed.Cont.fromList: too few elements"     step (T_flist (a:as)) = (a, T_flist as)@@ -613,7 +590,7 @@     step (T_flist []    ) = Nothing     step (T_flist (a:as)) = return (a, T_flist as) -data T_flist a n = T_flist [a]+newtype T_flist a n = T_flist [a]   -- | Convert vector to the list@@ -623,66 +600,50 @@   -- | Execute monadic action for every element of vector. Synonym for 'pure'.-replicate :: forall n a. (Arity n)-          => a -> ContVec n a+replicate :: (Arity n) => a -> ContVec n a {-# INLINE replicate #-}-replicate a = ContVec $ \(Fun fun) ->-  apply (\T_replicate -> (a, T_replicate))-        (T_replicate :: T_replicate n)-        fun+replicate a = apply (\Proxy -> (a, Proxy)) Proxy  -- | Execute monadic action for every element of vector.-replicateM :: forall m n a. (Arity n, Monad m)-           => m a -> m (ContVec n a)+replicateM :: (Arity n, Monad m) => m a -> m (ContVec n a) {-# INLINE replicateM #-}-replicateM act =-  applyM (\T_replicate -> do { a <- act; return (a, T_replicate) } )-         (T_replicate :: T_replicate n)---data T_replicate n = T_replicate+replicateM act+  = applyM (\Proxy -> do { a <- act; return (a, Proxy)}) Proxy   -- | Generate vector from function which maps element's index to its value.-generate :: forall n a. (Arity n) => (Int -> a) -> ContVec n a+generate :: (Arity n) => (Int -> a) -> ContVec n a {-# INLINE generate #-}-generate f = ContVec $ \(Fun fun) ->-  apply (\(T_generate n) -> (f n, T_generate (n + 1)))-        (T_generate 0 :: T_generate n)-         fun+generate f =+  apply (\(T_Counter n) -> (f n, T_Counter (n + 1)))+        (T_Counter 0)  -- | Generate vector from monadic function which maps element's index --   to its value.-generateM :: forall m n a. (Monad m, Arity n)-           => (Int -> m a) -> m (ContVec n a)+generateM :: (Monad m, Arity n) => (Int -> m a) -> m (ContVec n a) {-# INLINE generateM #-} generateM f =-  applyM (\(T_generate n) -> do { a <- f n; return (a, T_generate (n + 1)) } )-         (T_generate 0 :: T_generate n)+  applyM (\(T_Counter n) -> do { a <- f n; return (a, T_Counter (n + 1)) } )+         (T_Counter 0)  -newtype T_generate n = T_generate Int- -- | Unfold vector.-unfoldr :: forall n b a. Arity n => (b -> (a,b)) -> b -> ContVec n a+unfoldr :: Arity n => (b -> (a,b)) -> b -> ContVec n a {-# INLINE unfoldr #-}-unfoldr f b0 = ContVec $ \(Fun fun) ->+unfoldr f b0 =   apply (\(T_unfoldr b) -> let (a,b') = f b in (a, T_unfoldr b'))-        (T_unfoldr b0 :: T_unfoldr b n)-         fun+        (T_unfoldr b0)  newtype T_unfoldr b n = T_unfoldr b   -- | Unit vector along Nth axis.-basis :: forall n a. (Num a, Arity n) => Int -> ContVec n a+basis :: (Num a, Arity n) => Int -> ContVec n a {-# INLINE basis #-}-basis n0 = ContVec $ \(Fun fun) ->-  apply (\(T_basis n) -> ((if n == 0 then 1 else 0) :: a, T_basis (n - 1)))-        (T_basis n0 :: T_basis n)-        fun+basis n0 =+  apply (\(T_Counter n) -> (if n == 0 then 1 else 0, T_Counter (n - 1)))+        (T_Counter n0) -newtype T_basis n = T_basis Int   mk1 :: a -> ContVec N1 a@@ -727,7 +688,6 @@ {-# INLINE mapM #-} mapM = imapM . const --- {- -- | Apply monadic function to every element of the vector and its index. imapM :: (Arity n, Monad m) => (Int -> a -> m b) -> ContVec n a -> m (ContVec n b) {-# INLINE imapM #-}@@ -747,26 +707,26 @@ imapM_ f = ifoldl (\m i a -> m >> f i a >> return ()) (return ())  -imapMF :: forall m n a b r. (Arity n, Monad m)+imapMF :: (Arity n, Monad m)        => (Int -> a -> m b) -> Fun n b r -> Fun n a (m r) {-# INLINE imapMF #-}-imapMF f (Fun funB) = Fun $+imapMF f (Fun funB) =   accum (\(T_mapM i m) a -> T_mapM (i+1) $ do b   <- f i a                                               fun <- m                                               return $ fun b                            )         (\(T_mapM _ m) -> m)-        (T_mapM 0 (return funB) :: T_mapM b m r n)+        (T_mapM 0 (return funB))  data T_mapM a m r n = T_mapM Int (m (Fn n a r)) -imapF :: forall n a b r. Arity n+imapF :: Arity n       => (Int -> a -> b) -> Fun n b r -> Fun n a r {-# INLINE imapF #-}-imapF f (Fun funB) = Fun $+imapF f (Fun funB) =   accum (\(T_map i g) b -> T_map (i+1) (g (f i b)))         (\(T_map _ r)   -> r)-        (  T_map 0 funB :: T_map b r n)+        (  T_map 0 funB)  data T_map a r n = T_map Int (Fn n a r) @@ -783,8 +743,8 @@   cont . scanl1F f  scanlF :: forall n a b r. (Arity n) => (b -> a -> b) -> b -> Fun (S n) b r -> Fun n a r-scanlF f b0 (Fun fun0) = Fun-  $ accum step fini start+scanlF f b0 (Fun fun0)+  = accum step fini start   where     step  :: forall k. T_scanl r b (S k) -> a -> T_scanl r b k     step (T_scanl b fn) a = let b' = f b a in T_scanl b' (fn b')@@ -792,7 +752,7 @@     start = T_scanl b0 (fun0 b0)  :: T_scanl r b n  scanl1F :: forall n a r. (Arity n) => (a -> a -> a) -> Fun n a r -> Fun n a r-scanl1F f (Fun fun0) = Fun $ accum step fini start+scanl1F f (Fun fun0) = accum step fini start   where     step  :: forall k. T_scanl1 r a (S k) -> a -> T_scanl1 r a k     step (T_scanl1 Nothing  fn) a = T_scanl1 (Just a) (fn a)@@ -815,18 +775,15 @@ {-# INLINE sequence_ #-}  -- | The dual of sequenceA-distribute :: forall f n a. (Functor f, Arity n)-           => f (ContVec n a) -> ContVec n (f a)+distribute :: (Functor f, Arity n) => f (ContVec n a) -> ContVec n (f a) {-# INLINE distribute #-} distribute f0-  =  ContVec $ \(Fun fun) -> apply step start fun+  = apply step start   where     -- It's not possible to use ContVec as accumulator type since `head'     -- require Arity constraint on `k'. So we use plain lists-    step :: forall k. T_distribute a f (S k) -> (f a, T_distribute a f k)     step (T_distribute f) = ( fmap (\(x:_) -> x) f                             , T_distribute $ fmap (\(_:x) -> x) f)-    start :: T_distribute a f n     start = T_distribute (fmap toList f0)  collect :: (Functor f, Arity n) => (a -> ContVec n b) -> f a -> ContVec n (f b)@@ -834,16 +791,13 @@ {-# INLINE collect #-}  -- | The dual of sequence-distributeM :: forall m n a. (Monad m, Arity n)-            => m (ContVec n a) -> ContVec n (m a)+distributeM :: (Monad m, Arity n) => m (ContVec n a) -> ContVec n (m a) {-# INLINE distributeM #-} distributeM f0-  =  ContVec $ \(Fun fun) -> apply step start fun+  = apply step start   where-    step :: forall k. T_distribute a m (S k) -> (m a, T_distribute a m k)     step (T_distribute f) = ( liftM (\(x:_) -> x) f                             , T_distribute $ liftM (\(_:x) -> x) f)-    start :: T_distribute a m n     start = T_distribute (liftM toList f0)  collectM :: (Monad m, Arity n) => (a -> ContVec n b) -> m a -> ContVec n (m b)@@ -864,7 +818,7 @@ {-# INLINE cons #-}  -- | Prepend single element vector to another vector.-consV :: forall n a. ContVec (S Z) a -> ContVec n a -> ContVec (S n) a+consV :: ContVec (S Z) a -> ContVec n a -> ContVec (S n) a {-# INLINE consV #-} consV (ContVec cont1) (ContVec cont)   = ContVec $ \f -> cont $ curryFirst f $ cont1 $ Fun id@@ -938,23 +892,23 @@ {-# INLINE izipWithM_ #-} izipWithM_ f xs ys = sequence_ (izipWith f xs ys) -izipWithF :: forall n a b c r. (Arity n)+izipWithF :: (Arity n)           => (Int -> a -> b -> c) -> Fun n c r -> Fun n a (Fun n b r) {-# INLINE izipWithF #-} izipWithF f (Fun g0) =-  fmap (\v -> Fun $ accum+  fmap (\v -> accum               (\(T_izip i (a:as) g) b -> T_izip (i+1) as (g $ f i a b))               (\(T_izip _ _      x)   -> x)-              (T_izip 0 v g0 :: (T_izip a c r n))+              (T_izip 0 v g0)        ) makeList  -makeList :: forall n a. Arity n => Fun n a [a]+makeList :: Arity n => Fun n a [a] {-# INLINE makeList #-}-makeList = Fun $ accum+makeList = accum     (\(T_mkList xs) x -> T_mkList (xs . (x:)))     (\(T_mkList xs) -> xs [])-    (T_mkList id :: T_mkList a n)+    (T_mkList id)  newtype T_mkList a n = T_mkList ([a] -> [a]) @@ -980,26 +934,26 @@ {-# INLINE[1] vector #-}  -- | Finalizer function for getting head of the vector.-head :: forall n a. Arity (S n) => ContVec (S n) a -> a+head :: Arity (S n) => ContVec (S n) a -> a -- NOTE: we need constraint `Arity (S n)' instead of `Arity n' because --       `Vector v' entails `Arity (Dim v)' and GHC cannot figure out --       that `Arity (S n)' ⇒ `Arity n' {-# INLINE head #-} head-  = runContVec $ Fun+  = runContVec   $ accum (\(T_head m) a -> T_head $ case m of { Nothing -> Just a; x -> x })           (\(T_head (Just x)) -> x)-          (T_head Nothing :: T_head a (S n))+          (T_head Nothing)  data T_head a n = T_head (Maybe a)   -- | /O(n)/ Get value at specified index.-index :: forall n a. Arity n => Int -> ContVec n a -> a+index :: Arity n => Int -> ContVec n a -> a {-# INLINE index #-} index n   | n < 0     = error "Data.Vector.Fixed.Cont.index: index out of range"-  | otherwise = runContVec $ Fun $ accum+  | otherwise = runContVec $ accum      (\(T_Index x) a -> T_Index $ case x of                           Left  0 -> Right a                           Left  i -> Left (i - 1)@@ -1009,7 +963,7 @@                         Left  _ -> error "Data.Vector.Fixed.index: index out of range"                         Right a -> a      )-     ( T_Index (Left n) :: T_Index a n)+     (T_Index (Left n))  newtype T_Index a n = T_Index (Either Int a) @@ -1034,7 +988,7 @@ elementF :: forall a n f r. (Arity n, Functor f)          => Int -> (a -> f a) -> Fun n a r -> Fun n a (f r) {-# INLINE elementF #-}-elementF n f (Fun fun0) = Fun $ accum step fini start+elementF n f (Fun fun0) = accum step fini start   where     step :: forall k. T_lens f a r (S k) -> a -> T_lens f a r k     step (T_lens (Left (0,fun))) a = T_lens $ Right $ fmap fun $ f a@@ -1058,14 +1012,13 @@ foldl f = ifoldl (\b _ a -> f b a)  -- | Left fold over continuation vector.-ifoldl :: forall n a b. Arity n-       => (b -> Int -> a -> b) -> b -> ContVec n a -> b+ifoldl :: Arity n => (b -> Int -> a -> b) -> b -> ContVec n a -> b {-# INLINE ifoldl #-} ifoldl f b v-  = inspect v $ Fun+  = inspect v   $ accum (\(T_ifoldl i r) a -> T_ifoldl (i+1) (f r i a))           (\(T_ifoldl _ r) -> r)-          (T_ifoldl 0 b :: T_ifoldl b n)+          (T_ifoldl 0 b)  -- | Monadic left fold over continuation vector. foldM :: (Arity n, Monad m)@@ -1091,33 +1044,30 @@ -- But it require constraint `Arity n` whereas `Vector v a` gives -- `Arity (S n)`.  Latter imply former but GHC cannot infer it. -newtype T_foldl1 a n = T_foldl1 (Maybe a)- -- | Left fold.-foldl1 :: forall n a. (Arity (S n))-       => (a -> a -> a) -> ContVec (S n) a -> a+foldl1 :: (Arity (S n)) => (a -> a -> a) -> ContVec (S n) a -> a {-# INLINE foldl1 #-} foldl1 f-  = runContVec $ Fun+  = runContVec   $ accum (\(T_foldl1 r       ) a -> T_foldl1 $ Just $ maybe a (flip f a) r)           (\(T_foldl1 (Just x))   -> x)-          (T_foldl1 Nothing :: T_foldl1 a (S n))+          (T_foldl1 Nothing) +newtype T_foldl1 a n = T_foldl1 (Maybe a)+ -- | Right fold over continuation vector foldr :: Arity n => (a -> b -> b) -> b -> ContVec n a -> b {-# INLINE foldr #-} foldr = ifoldr . const  -- | Right fold over continuation vector-ifoldr :: forall n a b. Arity n-      => (Int -> a -> b -> b) -> b -> ContVec n a -> b+ifoldr :: Arity n => (Int -> a -> b -> b) -> b -> ContVec n a -> b {-# INLINE ifoldr #-} ifoldr f z-  = runContVec $ Fun+  = runContVec   $ accum (\(T_ifoldr i g) a -> T_ifoldr (i+1) (g . f i a))           (\(T_ifoldr _ g)   -> g z)-          (T_ifoldr 0 id :: T_ifoldr b n)-+          (T_ifoldr 0 id)  data T_ifoldr b n = T_ifoldr Int (b -> b) @@ -1153,7 +1103,7 @@  -- | Determines whether any of element of vector satisfy predicate. any :: Arity n => (a -> Bool) -> ContVec n a -> Bool-any f = foldr (\x b -> f x && b) True+any f = foldr (\x b -> f x || b) True {-# INLINE any #-}  -- | The 'find' function takes a predicate and a vector and returns@@ -1186,13 +1136,13 @@     gun = T_gunfold (inj $ unFun con) :: T_gunfold c (v a) a (Dim v)  -gfoldlF :: forall c r a n. (Arity n, Data a)+gfoldlF :: (Arity n, Data a)          => (forall x y. Data x => c (x -> y) -> x -> c y)          -> c (Fn n a r) -> Fun n a (c r)-gfoldlF f c0 = Fun $ accum+gfoldlF f c0 = accum   (\(T_gfoldl c) x -> T_gfoldl (f c x))   (\(T_gfoldl c)   -> c)-  (T_gfoldl c0 :: T_gfoldl c r a n)+  (T_gfoldl   c0)  newtype T_gfoldl c r a n = T_gfoldl (c (Fn n a r)) @@ -1300,10 +1250,9 @@   {-# INLINE construct #-}   {-# INLINE inspect #-} -#if __GLASGOW_HASKELL__ >= 708 type instance Dim Proxy = Z  instance Vector Proxy a where   construct = Fun Proxy   inspect _ = unFun-#endif+
Data/Vector/Fixed/Mutable.hs view
@@ -31,7 +31,7 @@  import Control.Monad.ST import Control.Monad.Primitive-import Data.Vector.Fixed.Cont (Dim,Arity,Fun(..),S,arity,apply,accum)+import Data.Vector.Fixed.Cont (Dim,Arity,Fun(..),S,Vector(..),arity,apply,accum) import Prelude hiding (read)  @@ -139,10 +139,10 @@ -- | Generic inspect implementation for array-based vectors. inspectVec :: forall v a b. (Arity (Dim v), IVector v a) => v a -> Fun (Dim v) a b -> b {-# INLINE inspectVec #-}-inspectVec v (Fun f)-  = apply (\(T_idx i) -> (unsafeIndex v i, T_idx (i+1)))-          (T_idx 0 :: T_idx (Dim v))-          f+inspectVec v+  = inspect+  $ apply (\(T_idx i) -> (unsafeIndex v i, T_idx (i+1)))+          (T_idx 0)  newtype T_idx n = T_idx Int @@ -150,7 +150,7 @@ -- | Generic construct implementation for array-based vectors. constructVec :: forall v a. (Arity (Dim v), IVector v a) => Fun (Dim v) a (v a) {-# INLINE constructVec #-}-constructVec = Fun $+constructVec =   accum step         (\(T_new _ st) -> runST $ unsafeFreeze =<< st :: v a)         (T_new 0 new :: T_new v a (Dim v))
Data/Vector/Fixed/Primitive.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP                   #-} {-# LANGUAGE StandaloneDeriving    #-} {-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE FlexibleInstances     #-}@@ -50,13 +49,8 @@ -- | Mutable unboxed vector with fixed length newtype MVec n s a = MVec (MutableByteArray s) -#if __GLASGOW_HASKELL__ >= 708 deriving instance Typeable Vec deriving instance Typeable MVec-#else-deriving instance Typeable2 Vec-deriving instance Typeable3 MVec-#endif  type Vec1 = Vec (S Z) type Vec2 = Vec (S (S Z))
Data/Vector/Fixed/Storable.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP                   #-} {-# LANGUAGE StandaloneDeriving    #-} {-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE FlexibleInstances     #-}@@ -54,13 +53,8 @@ -- | Storable-based mutable vector with fixed length newtype MVec n s a = MVec (ForeignPtr a) -#if __GLASGOW_HASKELL__ >= 708 deriving instance Typeable Vec deriving instance Typeable MVec-#else-deriving instance Typeable2 Vec-deriving instance Typeable3 MVec-#endif  type Vec1 = Vec (S Z) type Vec2 = Vec (S (S Z))
Data/Vector/Fixed/Unboxed.hs view
@@ -1,12 +1,12 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE TypeFamilies          #-}-{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE CPP                   #-}+{-# LANGUAGE DeriveDataTypeable    #-} {-# LANGUAGE FlexibleContexts      #-}+{-# LANGUAGE FlexibleInstances     #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables   #-}+{-# LANGUAGE StandaloneDeriving    #-}+{-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE UndecidableInstances  #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE DeriveDataTypeable #-} -- | -- Unboxed vectors with fixed length. module Data.Vector.Fixed.Unboxed(@@ -50,13 +50,8 @@ data family Vec  n a data family MVec n s a -#if __GLASGOW_HASKELL__ >= 708 deriving instance Typeable Vec deriving instance Typeable MVec-#else-deriving instance Typeable2 Vec-deriving instance Typeable3 MVec-#endif  type Vec1 = Vec (S Z) type Vec2 = Vec (S (S Z))
fixed-vector.cabal view
@@ -1,5 +1,5 @@ Name:           fixed-vector-Version:        0.8.1.0+Version:        0.9.0.0 Synopsis:       Generic vectors with statically known size. Description:   Generic library for vectors with statically known@@ -54,7 +54,7 @@ Category:       Data Build-Type:     Simple extra-source-files:-  ChangeLog+  ChangeLog.md  source-repository head   type:     hg@@ -66,7 +66,7 @@ Library   Ghc-options:          -Wall   Build-Depends:-    base >=3 && <5,+    base >=4.7 && <5,     deepseq,     primitive   Exposed-modules: