packages feed

vext-0.1.7.0: vext.cabal

cabal-version: 3.4
name: vext
version: 0.1.7.0
synopsis: Array library monomorphized with backpack
bug-reports: https://github.com/andrewthad/vex-unified/issues
license: BSD-3-Clause
license-file: LICENSE
author: Andrew Martin
maintainer: andrew.thaddeus@gmail.com
copyright: 2019 Andrew Martin
category: Data

library indef
  exposed-modules:
    Vector
  other-modules:
    Core
  signatures:
    Element
    Rep
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
  hs-source-dirs: src-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library prim-indef
  exposed-modules:
    PrimVector
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , primitive >=0.9
    , vext:indef
  signatures:
    Element
    Rep
  hs-source-dirs: src-prim-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library map-indef
  exposed-modules:
    MapVector
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
  mixins:
    vext:indef (Vector as VectorA) requires
      (Element as ElementA, Rep as RepA),
    vext:indef (Vector as VectorB) requires
      (Element as ElementB, Rep as RepB),
  hs-source-dirs: src-map-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library zip-indef
  exposed-modules:
    ZipVector
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
  mixins:
    vext:indef (Vector as VectorA) requires
      (Element as ElementA, Rep as RepA),
    vext:indef (Vector as VectorB) requires
      (Element as ElementB, Rep as RepB),
    vext:indef (Vector as VectorC) requires
      (Element as ElementC, Rep as RepC),
  hs-source-dirs: src-zip-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library type-eq-indef
  exposed-modules:
    TypeEqVector
  signatures:
    Element
    Rep
    Type
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
  hs-source-dirs: src-type-eq-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library rep-eq-indef
  exposed-modules:
    EqVector
  signatures:
    Element
    Rep
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
  hs-source-dirs: src-rep-eq-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library ord-indef
  exposed-modules:
    OrdVector
  signatures:
    Element
    Rep
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
    , vext:inst-bit
    , vext:rep-eq-indef
  hs-source-dirs: src-ord-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library mask-indef
  exposed-modules:
    MaskVector
  signatures:
    Element
    Rep
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
    , vext:inst-bit
  hs-source-dirs: src-mask-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

-- Inherits the element signature
library permute-indef
  exposed-modules:
    PermuteVector
  signatures:
    Element
    Rep
    FinElement
    FinType
  build-depends:
    , base >=4.12.0.0 && <5
    , natural-arithmetic
    , unlifted
    , vext:indef
    , vext:inst
  mixins:
    vext:indef (Vector as Vector) requires (Element as Element, Rep as Rep),
    vext:indef (Vector as FinVector) requires (Element as FinElement, Rep as FinRep),
  hs-source-dirs: src-permute-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library imp
  other-modules:
    EmptyPrimArray
  exposed-modules:
    Int
    Int8
    Int16
    Int32
    Int64
    Lifted
    ShortText
    Unlifted
    Word
    Word1
    Word16
    Word32
    Word64
    Word128
    Word8
  build-depends:
    , base >=4.12.0.0 && <5
    , primitive >=0.7
    , unlifted
  hs-source-dirs: src-imp
  default-language: Haskell2010
  ghc-options: -O2 -Wall

library inst-bit
  default-language: Haskell2010
  ghc-options: -O2 -Wall
  reexported-modules:
    , Vector.Std.Word1
    , Vector.Eq.Word1
  build-depends:
    , vext:imp
    , vext:indef
    , vext:rep-eq-indef
    , primitive >=0.7
  mixins:
    vext:indef (Vector as Vector.Std.Word1) requires (Element as Word1, Rep as Word1),
    vext:rep-eq-indef (EqVector as Vector.Eq.Word1) requires (Element as Word1, Rep as Word1),

library inst
  default-language: Haskell2010
  ghc-options: -O2 -Wall
  reexported-modules:
    , Vector.Std.Lifted
    , Vector.Std.Word
    , Vector.Std.Word8
    , Vector.Std.Word16
    , Vector.Std.Word32
    , Vector.Std.Word64
    , Vector.Std.Word128
    , Vector.Std.Int8
    , Vector.Std.Int16
    , Vector.Std.Int32
    , Vector.Std.Int
    , Vector.Eq.Int
    , Vector.Ord.Int
    , Vector.Ord.Int8
    , Vector.Ord.Int16
    , Vector.Ord.Int32
    , Vector.Ord.Word8
    , Vector.Ord.Word16
    , Vector.Ord.Word32
    , Vector.Ord.Word64
    , Vector.Eq.Word8
    , Vector.Eq.Word16
    , Vector.Eq.Word32
    , Vector.Eq.Word64
    , Vector.Eq.Int8
    , Vector.Eq.Int16
    , Vector.Eq.Int32
    , Vector.Masked.Word128
    , Vector.Masked.Word16
    , Vector.Masked.Int64
    , Vector.Masked.Unlifted
    , Vector.Std.Int64
    , Vector.Ord.Int64
    , Vector.Std.Unlifted
    , Vector.Map.Unlifted.Int32
    , Vector.Map.Word8.Lifted
    , Vector.Map.Word16.Lifted
    , Vector.Map.Word32.Lifted
    , Vector.Map.Word64.Lifted
    , Vector.Map.Int8.Lifted
    , Vector.Map.Int16.Lifted
    , Vector.Map.Int32.Lifted
    , Vector.Map.Int64.Lifted
    , Vector.Map.Unlifted.Lifted
    , Vector.Map.Lifted.Int32
    , Vector.Map.Lifted.Int64
    , Vector.Map.Lifted.Lifted
    , Vector.Map.Lifted.Unlifted
    , Vector.Zip.Unlifted.Word32.Lifted
    , Vector.Zip.Unlifted.Lifted.Lifted
    , Vector.Zip.Word16.Lifted.Lifted
    , Vector.Zip.Lifted.Word16.Lifted
    , Vector.Zip.Bit.Bit.Bit
    , Vector.Prim.Int8
    , Vector.Prim.Int32
    , Vector.Prim.Int64
    , Vector.Prim.Word8
    , Vector.Prim.Word16
    , Vector.Prim.Word32
    , Vector.Prim.Word64
  build-depends:
    , vext:imp
    , vext:indef
    , vext:map-indef
    , vext:zip-indef
    , vext:ord-indef
    , vext:rep-eq-indef
    , vext:type-eq-indef
    , vext:mask-indef
    , vext:prim-indef
    , primitive >=0.7
  mixins:
    vext:indef (Vector as Vector.Std.Word) requires (Element as Word, Rep as Word),
    vext:indef (Vector as Vector.Std.Word8) requires (Element as Word8, Rep as Word8),
    vext:indef (Vector as Vector.Std.Word16) requires (Element as Word16, Rep as Word16),
    vext:indef (Vector as Vector.Std.Word32) requires (Element as Word32, Rep as Word32),
    vext:indef (Vector as Vector.Std.Word64) requires (Element as Word64, Rep as Word64),
    vext:indef (Vector as Vector.Std.Word128) requires (Element as Word128, Rep as Word128),
    vext:indef (Vector as Vector.Std.Int8) requires (Element as Int8, Rep as Int8),
    vext:indef (Vector as Vector.Std.Int32) requires (Element as Int32, Rep as Int32),
    vext:indef (Vector as Vector.Std.Int16) requires (Element as Int16, Rep as Int16),
    vext:indef (Vector as Vector.Std.Int) requires (Element as Int, Rep as Int),
    vext:indef (Vector as Vector.Std.Int64) requires (Element as Int64, Rep as Int64),
    vext:mask-indef (MaskVector as Vector.Masked.Word128) requires (Element as Word128, Rep as Word128),
    vext:mask-indef (MaskVector as Vector.Masked.Int64) requires (Element as Int64, Rep as Int64),
    vext:mask-indef (MaskVector as Vector.Masked.Word16) requires (Element as Word16, Rep as Word16),
    vext:mask-indef (MaskVector as Vector.Masked.Unlifted) requires (Element as Unlifted, Rep as Unlifted),
    vext:zip-indef (ZipVector as Vector.Zip.Bit.Bit.Bit) requires
      (ElementA as Word1, RepA as Word1, ElementB as Word1, RepB as Word1, ElementC as Word1, RepC as Word1),
    vext:zip-indef (ZipVector as Vector.Zip.Lifted.Word16.Lifted) requires
      (ElementA as Lifted, RepA as Lifted, ElementB as Word16, RepB as Word16, ElementC as Lifted, RepC as Lifted),
    vext:zip-indef (ZipVector as Vector.Zip.Unlifted.Word32.Lifted) requires
      (ElementA as Unlifted, RepA as Unlifted, ElementB as Word32, RepB as Word32, ElementC as Lifted, RepC as Lifted),
    vext:zip-indef (ZipVector as Vector.Zip.Unlifted.Lifted.Lifted) requires
      (ElementA as Unlifted, RepA as Unlifted, ElementB as Lifted, RepB as Lifted, ElementC as Lifted, RepC as Lifted),
    vext:zip-indef (ZipVector as Vector.Zip.Word16.Lifted.Lifted) requires
      (ElementA as Word16, RepA as Word16, ElementB as Lifted, RepB as Lifted, ElementC as Lifted, RepC as Lifted),
    vext:map-indef (MapVector as Vector.Map.Unlifted.Int32) requires
      (ElementA as Unlifted, RepA as Unlifted, ElementB as Int32, RepB as Int32),
    vext:map-indef (MapVector as Vector.Map.Lifted.Int32) requires
      (ElementA as Lifted, RepA as Lifted, ElementB as Int32, RepB as Int32),
    vext:map-indef (MapVector as Vector.Map.Lifted.Int64) requires
      (ElementA as Lifted, RepA as Lifted, ElementB as Int64, RepB as Int64),
    vext:map-indef (MapVector as Vector.Map.Lifted.Lifted) requires
      (ElementA as Lifted, RepA as Lifted, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Lifted.Unlifted) requires
      (ElementA as Lifted, RepA as Lifted, ElementB as Unlifted, RepB as Unlifted),
    vext:map-indef (MapVector as Vector.Map.Unlifted.Lifted) requires
      (ElementA as Unlifted, RepA as Unlifted, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Word8.Lifted) requires
      (ElementA as Word8, RepA as Word8, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Word16.Lifted) requires
      (ElementA as Word16, RepA as Word16, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Word32.Lifted) requires
      (ElementA as Word32, RepA as Word32, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Word64.Lifted) requires
      (ElementA as Word64, RepA as Word64, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Int64.Lifted) requires
      (ElementA as Int64, RepA as Int64, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Int32.Lifted) requires
      (ElementA as Int32, RepA as Int32, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Int16.Lifted) requires
      (ElementA as Int16, RepA as Int16, ElementB as Lifted, RepB as Lifted),
    vext:map-indef (MapVector as Vector.Map.Int8.Lifted) requires
      (ElementA as Int8, RepA as Int8, ElementB as Lifted, RepB as Lifted),
    vext:indef (Vector as Vector.Std.Lifted) requires (Element as Lifted, Rep as Lifted),
    vext:indef (Vector as Vector.Std.Unlifted) requires (Element as Unlifted, Rep as Unlifted),
    vext:type-eq-indef (TypeEqVector as Vector.Std.Unlifted.Eq.ShortText)
      requires (Element as Unlifted, Rep as Unlifted, Type as ShortText),
    vext:ord-indef (OrdVector as Vector.Ord.Int) requires (Element as Int, Rep as Int),
    vext:ord-indef (OrdVector as Vector.Ord.Int8) requires (Element as Int8, Rep as Int8),
    vext:ord-indef (OrdVector as Vector.Ord.Int16) requires (Element as Int16, Rep as Int16),
    vext:ord-indef (OrdVector as Vector.Ord.Word8) requires (Element as Word8, Rep as Word8),
    vext:ord-indef (OrdVector as Vector.Ord.Word16) requires (Element as Word16, Rep as Word16),
    vext:ord-indef (OrdVector as Vector.Ord.Word32) requires (Element as Word32, Rep as Word32),
    vext:ord-indef (OrdVector as Vector.Ord.Word64) requires (Element as Word64, Rep as Word64),
    vext:ord-indef (OrdVector as Vector.Ord.Int32) requires (Element as Int32, Rep as Int32),
    vext:ord-indef (OrdVector as Vector.Ord.Int64) requires (Element as Int64, Rep as Int64),
    vext:rep-eq-indef (EqVector as Vector.Eq.Int) requires (Element as Int, Rep as Int),
    vext:rep-eq-indef (EqVector as Vector.Eq.Int32) requires (Element as Int32, Rep as Int32),
    vext:rep-eq-indef (EqVector as Vector.Eq.Int16) requires (Element as Int16, Rep as Int16),
    vext:rep-eq-indef (EqVector as Vector.Eq.Int8) requires (Element as Int8, Rep as Int8),
    vext:rep-eq-indef (EqVector as Vector.Eq.Word8) requires (Element as Word8, Rep as Word8),
    vext:rep-eq-indef (EqVector as Vector.Eq.Word16) requires (Element as Word16, Rep as Word16),
    vext:rep-eq-indef (EqVector as Vector.Eq.Word32) requires (Element as Word32, Rep as Word32),
    vext:rep-eq-indef (EqVector as Vector.Eq.Word64) requires (Element as Word64, Rep as Word64),
    vext:prim-indef (PrimVector as Vector.Prim.Int8) requires (Element as Int8, Rep as Int8),
    vext:prim-indef (PrimVector as Vector.Prim.Int32) requires (Element as Int32, Rep as Int32),
    vext:prim-indef (PrimVector as Vector.Prim.Int64) requires (Element as Int64, Rep as Int64),
    vext:prim-indef (PrimVector as Vector.Prim.Word8) requires (Element as Word8, Rep as Word8),
    vext:prim-indef (PrimVector as Vector.Prim.Word16) requires (Element as Word16, Rep as Word16),
    vext:prim-indef (PrimVector as Vector.Prim.Word32) requires (Element as Word32, Rep as Word32),
    vext:prim-indef (PrimVector as Vector.Prim.Word64) requires (Element as Word64, Rep as Word64),

library pair-indef
  exposed-modules:
    Element
    Rep
  signatures:
    ElementA
    ElementB
    RepA
    RepB
  build-depends:
    , base >=4.12.0.0 && <5
  hs-source-dirs: src-pair-indef
  default-language: Haskell2010
  ghc-options: -O2 -Wall

-- library triple-indef
--   exposed-modules:
--     Element
--     Rep
--   signatures:
--     ElementA
--     ElementB
--     ElementC
--     RepA
--     RepB
--     RepC
--   build-depends:
--     , base >=4.12.0.0 && <5
--   hs-source-dirs: src-triple-indef
--   default-language: Haskell2010
--   ghc-options: -O2 -Wall


library pair-array-inst
  default-language: Haskell2010
  ghc-options: -O2 -Wall
  reexported-modules:
    , Element.Pair.Lifted.Word8
    , Element.Pair.Word8.Word8
  build-depends:
    , vext:inst
    , vext:imp
    , vext:pair-indef
  mixins:
    vext:pair-indef (Element as Element.Pair.Lifted.Word8) requires
      (ElementA as Lifted, ElementB as Word8, RepA as Lifted, RepB as Word8),
    vext:pair-indef (Element as Element.Pair.Word8.Word8) requires
      (ElementA as Word8, ElementB as Word8, RepA as Word8, RepB as Word8),

library pair-inst
  default-language: Haskell2010
  ghc-options: -O2 -Wall
  reexported-modules:
    , Vector.Pair.Word8.Lifted
    , Vector.Pair.Word8.Word8
  build-depends:
    , vext:pair-array-inst
    , vext:indef
  mixins:
    vext:indef (Vector as Vector.Pair.Word8.Lifted) requires
      (Element as Element.Pair.Lifted.Word8, Rep as Element.Pair.Lifted.Word8),
    vext:indef (Vector as Vector.Pair.Word8.Word8) requires
      (Element as Element.Pair.Word8.Word8, Rep as Element.Pair.Word8.Word8),

library
  hs-source-dirs: src
  default-language: Haskell2010
  ghc-options: -O2 -Wall
  reexported-modules:
    , Vector.Pair.Word8.Lifted
    , Vector.Pair.Word8.Word8
    , Vector.Std.Lifted
    , Vector.Std.Unlifted
    , Vector.Std.Int32
    , Vector.Ord.Int32
    , Vector.Std.Word16
    , Vector.Std.Word32
    , Vector.Std.Word8
    , Vector.Std.Word
    , Vector.Map.Lifted.Int32
    , Vector.Map.Lifted.Int64
    , Vector.Map.Lifted.Lifted
    , Vector.Map.Lifted.Unlifted
    , Vector.Map.Word8.Lifted
    , Vector.Map.Word16.Lifted
    , Vector.Map.Word32.Lifted
    , Vector.Map.Word64.Lifted
    , Vector.Map.Int8.Lifted
    , Vector.Map.Int16.Lifted
    , Vector.Map.Int32.Lifted
    , Vector.Map.Int64.Lifted
    , Vector.Map.Unlifted.Lifted
    , Vector.Zip.Unlifted.Word32.Lifted
    , Vector.Zip.Unlifted.Lifted.Lifted
    , Vector.Zip.Word16.Lifted.Lifted
    , Vector.Zip.Lifted.Word16.Lifted
  exposed-modules:
    Vector.Bit
    Vector.Word
    Vector.Word8
    Vector.Word16
    Vector.Word32
    Vector.Word64
    Vector.Word128
    Vector.Word128.Masked
    Vector.Int
    Vector.Int8
    Vector.Int16
    Vector.Int32
    Vector.Int64
    Vector.Int64.Masked
    Vector.Word16.Masked
    Vector.Lifted
    Vector.Unlifted
    Vector.Unlifted.ByteArray
    Vector.Unlifted.ShortText
    Vector.Unlifted.Masked
  build-depends:
    , base >=4.12.0.0 && <5 
    , vext:inst
    , vext:pair-inst
    , vext:inst-bit
    , natural-arithmetic
    , primitive >=0.8
    , run-st >=0.1.3
    , transformers >=0.6.1
    , unlifted

test-suite test 
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  ghc-options: -Wall -O2
  build-depends:
    , base >=4.12.0.0 && <5 
    , byteslice
    , vext
    , tasty >=1.2.3
    , tasty-quickcheck >=0.10
    , natural-arithmetic
    , unlifted