packages feed

parameterized-utils-1.0.0: parameterized-utils.cabal

Name:          parameterized-utils
Version:       1.0.0
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.

-- 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.11,
    th-abstraction >=0.1 && <0.3,
    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.Context
    Data.Parameterized.Context.Safe
    Data.Parameterized.Context.Unsafe
    Data.Parameterized.Ctx
    Data.Parameterized.Ctx.Proofs
    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.Some
    Data.Parameterized.SymbolRepr
    Data.Parameterized.Pair
    Data.Parameterized.TH.GADT
    Data.Parameterized.TraversableF
    Data.Parameterized.TraversableFC
    Data.Parameterized.Utils.BinTree

  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

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