packages feed

fixed-vector-2.0.0.0: fixed-vector.cabal

Cabal-Version:  3.0
Build-Type:     Simple

Name:           fixed-vector
Version:        2.0.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.Mutable
  Type classes for array-based implementation and API for working with
  mutable state.
  .
  * Data.Vector.Fixed.Unboxed
  Unboxed vectors.
  .
  * Data.Vector.Fixed.Boxed
  Boxed vector which can hold elements of any type.
  .
  * Data.Vector.Fixed.Storable
  Unboxed vectors of Storable  types.
  .
  * Data.Vector.Fixed.Primitive
  Unboxed vectors based on pritimive package.

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 ==8.10.7
     || ==9.0.1
     || ==9.2.8
     || ==9.4.7
     || ==9.6.6
     || ==9.8.2
     || ==9.10.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


Library
  import:        language
  Build-Depends: base      >=4.14 && <5
               , primitive >=0.6.2
               , deepseq
  Exposed-modules:
    -- API
    Data.Vector.Fixed.Cont
    Data.Vector.Fixed
    Data.Vector.Fixed.Generic
    -- 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

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