cabal-version: 3.4 name: data-debruijn version: 0.1.0.0 x-revision: 1 synopsis: Fast and safe implementation of common compiler machinery. description: This package provides a safe interface to optimised implementations of common machinery used in compilers and type checkers. [Type-Level Naturals]: "Data.Type.Nat" "Data.Type.Nat.Singleton" [DeBruijn Indexes] "Data.DeBruijn.Index" [Thinnings] "Data.DeBruijn.Thinning" [Environments] "Data.DeBruijn.Environment" license: AGPL-3.0-only author: Wen Kokke maintainer: wenkokke@users.noreply.github.com copyright: 2023-2025 (c) Wen Kokke 2025 (c) April Gonçalves 2025 (c) Well-Typed LLC category: Development build-type: Simple extra-doc-files: CHANGELOG.md tested-with: GHC ==9.6.7 || ==9.8.4 || ==9.10.2 || ==9.12.2 source-repository head type: git location: https://github.com/wenkokke/data-debruijn source-repository this type: git location: https://github.com/wenkokke/data-debruijn tag: v0.1.0.0 -------------------------------------------------------------------------------- -- Feature Flags for Underlying Representation -------------------------------------------------------------------------------- -- Representation: Use safe inductive definitions for all types. flag safe description: Export the safe API. manual: True default: False flag th-as-word64 description: Use a Word to represent thinnings. The default is Natural. manual: True default: False -- Representation: Environments flag env-as-skew-list description: Use SkewList from the skew-list package to represent environments. The default is Seq from the containers package. manual: True default: False common language ghc-options: -Wall -Wcompat -Widentities -Wprepositive-qualified-module -Wredundant-constraints -Wunticked-promoted-constructors -Wunused-packages default-language: GHC2021 default-extensions: ImportQualifiedPost NoFieldSelectors library import: language hs-source-dirs: src default-extensions: NoImplicitPrelude build-depends: data-debruijn:typenats reexported-modules: Data.Type.Nat exposed-modules: Data.DeBruijn.Environment Data.DeBruijn.Index Data.DeBruijn.Thinning Data.Type.Nat.Singleton if flag(safe) build-depends: data-debruijn:safe cpp-options: -DEXPORT_SAFE_API else build-depends: data-debruijn:fast -- NOTE: GHC does not detect that the package "data-debruijn:typenats" -- is used by the "reexported-modules" declaration. ghc-options: -Wno-unused-packages library typenats import: language visibility: public hs-source-dirs: src-typenats exposed-modules: Data.Type.Nat build-depends: base >=4.18 && <5 library fast import: language visibility: public hs-source-dirs: src-fast exposed-modules: Data.DeBruijn.Environment.Fast Data.DeBruijn.Index.Fast Data.DeBruijn.Thinning.Fast Data.Type.Nat.Singleton.Fast build-depends: , base >=4.18 && <5 , data-debruijn:typenats , deepseq ^>=1.4 || ^>=1.5 -- Representation: Natural Number Singletons cpp-options: -DSNAT_AS_INT -- Representation: Indexes cpp-options: -DIX_AS_INT -- Representation: Thinnings if flag(th-as-word64) cpp-options: -DTH_AS_WORD64 build-depends: ghc-prim ^>=0.9 || ^>=0.10 || ^>=0.11 || ^>=0.12 || ^>=0.13 else cpp-options: -DTH_AS_NATURAL build-depends: , ghc-bignum ^>=1.3 , ghc-prim ^>=0.9 || ^>=0.10 || ^>=0.11 || ^>=0.12 || ^>=0.13 -- Representation: Environments if flag(env-as-skew-list) cpp-options: -DENV_AS_SKEW_LIST build-depends: skew-list ^>=0.1 else cpp-options: -DENV_AS_SEQ build-depends: containers >=0.6.7 && <0.9 library safe import: language visibility: public hs-source-dirs: src-safe exposed-modules: Data.DeBruijn.Environment.Safe Data.DeBruijn.Index.Safe Data.DeBruijn.Thinning.Safe Data.Type.Nat.Singleton.Safe build-depends: , base >=4.18 && <5 , data-debruijn:fast , data-debruijn:typenats , deepseq ^>=1.4 || ^>=1.5 library arbitrary import: language visibility: public hs-source-dirs: src-arbitrary other-modules: Test.QuickCheck.Extra exposed-modules: Data.DeBruijn.Index.Arbitrary Data.DeBruijn.Index.Fast.Arbitrary Data.DeBruijn.Index.Safe.Arbitrary Data.DeBruijn.Thinning.Arbitrary Data.DeBruijn.Thinning.Fast.Arbitrary Data.DeBruijn.Thinning.Safe.Arbitrary Data.Type.Nat.Singleton.Arbitrary Data.Type.Nat.Singleton.Fast.Arbitrary Data.Type.Nat.Singleton.Safe.Arbitrary build-depends: , base , data-debruijn:fast , data-debruijn:safe , data-debruijn:typenats , QuickCheck >=2.9 && <3.0