packages feed

intensional-datatys-0.2.0.0: intensional-datatys.cabal

cabal-version:  3.0

name:           intensional-datatys
version:        0.2.0.0
synopsis:       A GHC Core plugin for intensional datatype refinement checking
description:    Please see the README on GitHub at <https://github.com/bristolpl/intensional-datatys#readme>
homepage:       https://github.com/bristolpl/intensional-datatys#readme
bug-reports:    https://github.com/bristolpl/intensional-datatys/issues
category:       Language
author:         Eddie Jones, Steven Ramsay
maintainer:     ej16147@bristol.ac.uk, steven.ramsay@bristol.ac.uk
copyright:      2019 Eddie Jones, Steven Ramsay
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md

source-repository head
  type: git
  location: https://github.com/bristolpl/intensional-datatys

flag bbenchmarks
    description: Build the benchmark management script
    default: False
    manual: True

library
  exposed-modules:
      Intensional
  other-modules:
      Intensional.Types
      Intensional.Constructors
      Intensional.Constraints
      Intensional.Guard
      Intensional.Scheme
      Intensional.InferM
      Intensional.FromCore
      Intensional.InferCoreExpr
      Intensional.Ubiq
  hs-source-dirs:
      src
  cpp-options:
  -- -DDEBUG
  ghc-options:
      -Wall
      -Wcompat
      -Wincomplete-record-updates
      -Wincomplete-uni-patterns
      -Wredundant-constraints
      -Wnoncanonical-monad-instances
  build-depends:
        base >=4 && <5
      , ghc >=8.6.0 && <=8.8.4
      , extra ==1.7.4
      , containers ==0.6.2.1
      , unordered-containers ==0.2.11.0
      , mtl ==2.2.2
      , hashable ==1.3.0.0
      , aeson ==1.5.2.0
      , directory ==1.3.6.0
      , filepath ==1.4.2.1
      , haskeline ==0.7.5.0
  default-language: Haskell2010

test-suite test
  type: exitcode-stdio-1.0
  main-is: PaperExamples.hs
  hs-source-dirs:
      test
  ghc-options: 
      -g 
      -fno-pre-inlining 
      -funfolding-use-threshold=0 
      -fno-ignore-interface-pragmas 
      -fno-omit-interface-pragmas
      -fplugin Intensional
  build-depends:
      base >=4 && <5
    , intensional-datatys
  default-language: Haskell2010

-- A library intended to be used from GHCI
-- to manage benchmarks for the associated paper
library benchmark
  if flag(bbenchmarks)
    buildable:True
  else
    buildable:False
  exposed-modules:
      Benchmark
  build-depends:
      base >=4
    , aeson ==1.5.2.0
    , containers ==0.6.2.1
    , intensional-datatys
    , filepath ==1.4.2.1
    , directory ==1.3.6.0
  hs-source-dirs:
      benchmark
  default-language: Haskell2010

-- Requires ghc 8.8
-- Needs manual tailoring to your
-- particular system, so disabled by
-- default.
executable profile
  ghc-options:
  buildable: False
  build-depends:
      base >=4 && <5
    , ghc  >= 8.8
    , filepath ==1.4.2.1
    , directory ==1.3.6.0
    , intensional-datatys
  hs-source-dirs:
      profile
  main-is: Profile.hs
  default-language: Haskell2010