packages feed

fixed-vector-2.1.0.0: fixed-vector.cabal

Cabal-Version:  3.0
Build-Type:     Simple

Name:           fixed-vector
Version:        2.1.0.0
Synopsis:       Generic vectors with statically known size.
Description:
  Generic library for vectors with statically known
  size. Implementation is based on
  <http://unlines.wordpress.com/2010/11/15/generics-for-small-fixed-size-vectors/>
  Same functions could be used to work with both ADT based vector like

  > data Vec3 a = a a a

  Tuples are vectors too:

  >>> sum (1,2,3)
  6

  Vectors which are represented internally by arrays are provided by
  library. Both boxed and unboxed arrays are supported.

  Library is structured as follows:

  * __Data.Vector.Fixed__:
  Generic API. It's suitable for both ADT-based vector like Complex
  and array-based ones.

  * __Data.Vector.Fixed.Cont__:
  Continuation based vectors. Internally all functions use them.

  * __Data.Vector.Fixed.Unboxed__:
  Unboxed vectors which select best representation using types.

  * __Data.Vector.Fixed.Strict__:
  Strict boxed vector which can hold elements of any type.

  * __Data.Vector.Fixed.Boxed__:
  Lazy boxed vector which can hold elements of any type.

  * __Data.Vector.Fixed.Storable__:
  Unboxed vectors of Storable  types.

  * __Data.Vector.Fixed.Primitive__:
  Unboxed vectors backed by single @ByteArray@

  * __Data.Vector.Fixed.Mutable__:
  Type classes for array-based implementation and API for working with
  mutable state.


License:        BSD-3-Clause
License-File:   LICENSE
Author:         Aleksey Khudyakov <alexey.skladnoy@gmail.com>
Maintainer:     Aleksey Khudyakov <alexey.skladnoy@gmail.com>
Bug-reports:    https://github.com/Shimuuar/fixed-vector/issues
Category:       Data
extra-doc-files:
  ChangeLog.md

tested-with:
    GHC ==9.4.7
     || ==9.6.7
     || ==9.8.4
     || ==9.10.2
     || ==9.12.2
     || ==9.14.1

source-repository head
  type:     git
  location: http://github.com/Shimuuar/fixed-vector

common language
  Ghc-options:          -Wall -Wno-incomplete-uni-patterns
  Default-Language:     Haskell2010
  Default-Extensions:
    -- GHC2021 sans PolyKinds
    BangPatterns
    ConstraintKinds
    DataKinds
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveLift
    DeriveTraversable
    DerivingStrategies
    DisambiguateRecordFields
    DoAndIfThenElse
    EmptyCase
    EmptyDataDecls
    EmptyDataDeriving
    ExistentialQuantification
    ExplicitNamespaces
    FlexibleContexts
    FlexibleInstances
    ForeignFunctionInterface
    GADTs
    GADTSyntax
    GeneralisedNewtypeDeriving
    ImplicitPrelude
    ImportQualifiedPost
    InstanceSigs
    KindSignatures
    LambdaCase
    MonoLocalBinds
    MonomorphismRestriction
    MultiParamTypeClasses
    NamedFieldPuns
    NamedWildCards
    NumericUnderscores
    PatternGuards
    PostfixOperators
    RankNTypes
    RelaxedPolyRec
    RoleAnnotations
    ScopedTypeVariables
    StandaloneDeriving
    StandaloneKindSignatures
    TupleSections
    TypeApplications
    TypeOperators
    TypeSynonymInstances
    --
    DerivingVia
    PatternSynonyms
    ViewPatterns
    TypeFamilies
    FunctionalDependencies


Library
  import:        language
  Build-Depends: base      >=4.16 && <5
               , primitive >=0.6.2
               , deepseq
  if impl(ghc<9.6)
     Build-Depends: foldable1-classes-compat >=0.1
  Exposed-modules:
    -- API
    Data.Vector.Fixed.Cont
    Data.Vector.Fixed
    Data.Vector.Fixed.Generic
    Data.Vector.Fixed.Mono
    -- Arrays
    Data.Vector.Fixed.Mutable
    Data.Vector.Fixed.Boxed
    Data.Vector.Fixed.Strict
    Data.Vector.Fixed.Primitive
    Data.Vector.Fixed.Unboxed
    Data.Vector.Fixed.Storable
  Other-modules:
    Data.Vector.Fixed.Internal
    Data.Vector.Fixed.Compat

Test-Suite fixed-vector-doctests
  Default-Language: Haskell2010
  if impl(ghc < 9.2)
    buildable: False
  Type:           exitcode-stdio-1.0
  Hs-source-dirs: test
  Main-is:        Doctests.hs
  Build-Depends: base      >=4.14 && <5
               , primitive >=0.6.2
                 -- Additional test dependencies.
               , doctest   >= 0.18
               , filemanip == 0.3.6.*

Test-Suite fixed-vector-inspect
  import:         language
  Type:           exitcode-stdio-1.0
  Hs-source-dirs: test
  Main-is:        inspect.hs
  Other-modules:  Inspect.Obligations
  Build-Depends:  base         >=4.8 && <5
                , template-haskell
                , fixed-vector
                , tasty        >= 1.2
                , tasty-inspection-testing >= 0.1