packages feed

bv-sized-0.6.0: submodules/parameterized-utils/parameterized-utils.cabal

Name:          parameterized-utils
Version:       1.0.8
Author:        Galois Inc.
Maintainer:    jhendrix@galois.com
Build-type:    Simple
Cabal-version: >= 1.9.2
license: BSD3
license-file: LICENSE
category: Data Structures, Dependent Types
Synopsis: Classes and data structures for working with data-kind indexed types
Description:
  This packages contains collection classes and type representations
  used for working with values that have a single parameter.  It's
  intended for things like expression libraries where one wishes
  to leverage the Haskell type-checker to improve type-safety by encoding
  the object language type system into data kinds.
tested-with: GHC==8.4.3, GHC==8.6.1

-- Many (but not all, sadly) uses of unsafe operations are
-- controlled by this compile flag.  When this flag is set
-- to False, alternate implementations are used to avoid
-- Unsafe.Coerce and Data.Coerce.  These alternate implementations
-- impose a significant performance hit.
flag unsafe-operations
  Description: Use unsafe operations to improve performance
  Default: True

source-repository head
  type: git
  location: https://github.com/GaloisInc/parameterized-utils

library
  build-depends:
    base >= 4.7 && < 4.13,
    th-abstraction >=0.1 && <0.3,
    constraints >= 0.10 && < 0.11,
    containers,
    deepseq,
    ghc-prim,
    hashable,
    hashtables,
    lens,
    mtl,
    template-haskell,
    text,
    vector

  hs-source-dirs: src

  exposed-modules:
    Data.Parameterized
    Data.Parameterized.Classes
    Data.Parameterized.ClassesC
    Data.Parameterized.Compose
    Data.Parameterized.Context
    Data.Parameterized.Context.Safe
    Data.Parameterized.Context.Unsafe
    Data.Parameterized.Ctx
    Data.Parameterized.Ctx.Proofs
    Data.Parameterized.DecidableEq
    Data.Parameterized.HashTable
    Data.Parameterized.List
    Data.Parameterized.Map
    Data.Parameterized.NatRepr
    Data.Parameterized.Nonce
    Data.Parameterized.Nonce.Transformers
    Data.Parameterized.Nonce.Unsafe
    Data.Parameterized.Pair
    Data.Parameterized.Peano
    Data.Parameterized.Some
    Data.Parameterized.SymbolRepr
    Data.Parameterized.TH.GADT
    Data.Parameterized.TraversableF
    Data.Parameterized.TraversableFC
    Data.Parameterized.Utils.BinTree
    Data.Parameterized.Utils.Endian
    Data.Parameterized.Vector

  ghc-options: -Wall

  if flag(unsafe-operations)
    cpp-options: -DUNSAFE_OPS


test-suite parameterizedTests
  type: exitcode-stdio-1.0
  hs-source-dirs: test

  ghc-options: -Wall

  main-is:UnitTest.hs
  other-modules:
    Test.Context
    Test.NatRepr
    Test.Vector

  build-depends:
    base,
    hashable,
    hashtables,
    ghc-prim,
    lens,
    mtl,
    parameterized-utils,
    tasty,
    tasty-ant-xml >= 1.1.0,
    tasty-hunit,
    tasty-quickcheck >= 0.8.1,
    QuickCheck >= 2.7