cabal-version: 2.2

name:           fixed-decimal
version:        0.0.2
synopsis:       Fixed precision decimals for Haskell
description:
  Fixed precision decimal numbers type
  .
  Example of defining 256-bit signed decimal with 10-digit fractional part:
  .
  >{-# LANGUAGE DataKinds #-}
  >
  >import Data.DoubleWord (Int256)
  >import Data.Fixed.Decimal (Decimal)
  >
  >type DecimalI256 = Decimal Int256 10
  .
  >>> minBound :: Decimal Int 5
  -92233720368547.75808
  .
  >>> maxBound :: Decimal Int256 25
  5789604461865809771178549250434395392663499233282028.2019728792003956564819967
  .
  >>> 1 / 3 :: Decimal Integer 50
  0.33333333333333333333333333333333333333333333333333
  .

category:       Data
homepage:       https://github.com/EduardSergeev/fixed-decimal#readme
bug-reports:    https://github.com/EduardSergeev/fixed-decimal/issues
author:         Eduard Sergeev
maintainer:     eduard.sergeev@gmail.com
copyright:      2024 Eduard Sergeev
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
  type: git
  location: https://github.com/EduardSergeev/fixed-decimal

common project-config
  ghc-options:
    -O2 -Wall
  default-extensions:
    DataKinds
    FlexibleInstances
    TypeApplications
  build-depends:
    base >=4.7 && <5
  default-language: Haskell2010

library
  import: project-config
  exposed-modules:
    Data.Fixed.Decimal
    Data.Fixed.Decimal.Class
  other-modules:
    Paths_fixed_decimal
  autogen-modules:
    Paths_fixed_decimal
  hs-source-dirs:
    src

test-suite fixed-decimal-test
  import: project-config
  type: exitcode-stdio-1.0
  main-is: Test.hs
  other-modules:
    Paths_fixed_decimal
    Data.Fixed.Decimal.Tests
  autogen-modules:
    Paths_fixed_decimal
  hs-source-dirs:
    test
  ghc-options:
    -fno-warn-orphans -threaded -rtsopts -with-rtsopts=-N
  build-depends:
    data-dword,
    Decimal,
    fixed-decimal,
    QuickCheck,
    quickcheck-instances,
    scientific,
    tasty,
    tasty-hunit,
    tasty-quickcheck

benchmark all
  import: project-config
  type: exitcode-stdio-1.0
  ghc-options:
    -fno-warn-orphans
  hs-source-dirs:
    benchmark
  main-is:
    Bench.hs
  build-depends:
    criterion,
    data-dword,
    Decimal,
    deepseq,
    fixed-decimal