packages feed

uom-plugin-0.4.0.0: uom-plugin.cabal

cabal-version: 1.12

name:           uom-plugin
version:        0.4.0.0
synopsis:       Units of measure as a GHC type-checker plugin
description:    The @uom-plugin@ library adds support for units of
                measure as a GHC type-checker plugin. See
                "Data.UnitsOfMeasure.Tutorial" for an introduction to the library.
category:       Type System
stability:      experimental
homepage:       https://github.com/adamgundry/uom-plugin#readme
bug-reports:    https://github.com/adamgundry/uom-plugin/issues
author:         Adam Gundry <adam@well-typed.com>
maintainer:     Adam Gundry <adam@well-typed.com>
copyright:      Copyright (c) 2014-2022, Adam Gundry
license:        BSD3
license-file:   LICENSE
tested-with:    GHC == 9.0.2, GHC == 9.2.4, GHC == 9.4.2
build-type:     Simple
extra-source-files:
    CHANGELOG.md
    README.md
    LICENSE

source-repository head
  type: git
  location: https://github.com/adamgundry/uom-plugin

library
  exposed-modules:
      Data.UnitsOfMeasure
      Data.UnitsOfMeasure.Convert
      Data.UnitsOfMeasure.Defs
      Data.UnitsOfMeasure.Internal
      Data.UnitsOfMeasure.Plugin
      Data.UnitsOfMeasure.Read
      Data.UnitsOfMeasure.Show
      Data.UnitsOfMeasure.Singleton
      Data.UnitsOfMeasure.Tutorial
  other-modules:
      Data.UnitsOfMeasure.Plugin.Convert
      Data.UnitsOfMeasure.Plugin.NormalForm
      Data.UnitsOfMeasure.Plugin.Unify
      Data.UnitsOfMeasure.TH
      GhcApi
      GhcApi.Compare
  hs-source-dirs:
      doc
      src
  ghc-options: -Wall -fno-warn-unticked-promoted-constructors
  build-depends:
      base >=4.9.1.0 && <5
    , containers >=0.5 && <0.7
    , deepseq >=1.3 && <1.5
    , ghc >=9.0.1 && <9.5
    , ghc-tcplugin-api >=0.8.3.0 && <0.9
    , template-haskell >=2.9 && <2.20
    , units-parser >=0.1 && <0.2
  default-language: Haskell2010

test-suite doctest
  if impl(ghc >= 9.4)
      buildable: False
  type: exitcode-stdio-1.0
  main-is: DocTest.hs
  other-modules:
      Data.UnitsOfMeasure
      Data.UnitsOfMeasure.Convert
      Data.UnitsOfMeasure.Defs
      Data.UnitsOfMeasure.Internal
      Data.UnitsOfMeasure.Plugin
      Data.UnitsOfMeasure.Plugin.Convert
      Data.UnitsOfMeasure.Plugin.NormalForm
      Data.UnitsOfMeasure.Plugin.Unify
      Data.UnitsOfMeasure.Read
      Data.UnitsOfMeasure.Show
      Data.UnitsOfMeasure.Singleton
      Data.UnitsOfMeasure.TH
      GhcApi
      GhcApi.Compare
  hs-source-dirs:
      src
      test-suite-doctest
  ghc-options: -Wall -fno-warn-unticked-promoted-constructors -rtsopts -threaded -with-rtsopts=-N
  build-depends:
      QuickCheck
    , base >=4.9.1.0 && <5
    , containers >=0.5
    , deepseq >=1.3 && <1.5
    , doctest
    , ghc
    , ghc-tcplugin-api
    , template-haskell >=2.9
    , units-parser >=0.1
  default-language: Haskell2010

test-suite hlint
  buildable: False
  type: exitcode-stdio-1.0
  main-is: HLint.hs
  hs-source-dirs:
      test-suite-hlint
  ghc-options: -Wall -fno-warn-unticked-promoted-constructors -rtsopts -threaded -with-rtsopts=-N
  build-depends:
      base >=4.9.1.0 && <5
    , hlint >=2.0.11
  default-language: Haskell2010

test-suite units
  type: exitcode-stdio-1.0
  main-is: Tests.hs
  other-modules:
      Defs
      ErrorTests
      Z
  hs-source-dirs:
      test-suite-units
  ghc-options: -Wall -fno-warn-unticked-promoted-constructors -rtsopts -threaded -with-rtsopts=-N
  build-depends:
      base >=4.9.1.0 && <5
    , tasty >=0.11.3
    , tasty-hunit >=0.9.2
    , uom-plugin
  default-language: Haskell2010