packages feed

unpacked-maybe-numeric-0.1.3.1: unpacked-maybe-numeric.cabal

cabal-version:   3.0
name:            unpacked-maybe-numeric
version:         0.1.3.1
synopsis:        maybes of numeric values with fewer indirections
description:
  This library provides one `Maybe` type per the usual numeric types:
  Float, Double, Complex {Float|Double}, Int{8|16|32|64}, and Word{8|16|32|64|128}
  .
  All of the numeric types inside the `Maybe` are unboxed, while the `Maybe` value
  itself is represented as an Unboxed Sum. However, for sub-machine-size Int/Word values,
  the `Maybe` is just a wrapper around the underlying type, with out-of-bounds corresponding
  to the `Nothing` value. Thus, the use of these constructors is unsafe, as this is only
  checked internally.

homepage:        https://github.com/byteverse/unpacked-maybe-numeric
bug-reports:     https://github.com/byteverse/unpacked-maybe-numeric/issues
author:          Andrew Martin, chessai
maintainer:      amartin@layer3com.com, chessai1996@gmail.com
category:        Data
copyright:       2018 Andrew Martin
license:         BSD-3-Clause
license-file:    LICENSE
build-type:      Simple
extra-doc-files:
  CHANGELOG.md
  README.md

tested-with:     GHC ==9.4.8 || ==9.6.3 || ==9.8.1

common build-settings
  default-language: Haskell2010
  ghc-options:      -Wall -Wunused-packages

library
  import:          build-settings
  exposed-modules:
    Data.Maybe.Unpacked.Numeric.Complex.Double
    Data.Maybe.Unpacked.Numeric.Complex.Float
    Data.Maybe.Unpacked.Numeric.Double
    Data.Maybe.Unpacked.Numeric.Float
    Data.Maybe.Unpacked.Numeric.Int
    Data.Maybe.Unpacked.Numeric.Int16
    Data.Maybe.Unpacked.Numeric.Int32
    Data.Maybe.Unpacked.Numeric.Int64
    Data.Maybe.Unpacked.Numeric.Int8
    Data.Maybe.Unpacked.Numeric.Word
    Data.Maybe.Unpacked.Numeric.Word128
    Data.Maybe.Unpacked.Numeric.Word16
    Data.Maybe.Unpacked.Numeric.Word32
    Data.Maybe.Unpacked.Numeric.Word64
    Data.Maybe.Unpacked.Numeric.Word8

  hs-source-dirs:  src
  build-depends:
    , base         >=4.17.1.0 && <5
    , wide-word    >=0.1.0.8  && <0.2
    , word-compat  >=0.0.4    && <0.1

  ghc-options:     -O2

test-suite spec
  import:         build-settings
  type:           exitcode-stdio-1.0
  main-is:        spec.hs
  hs-source-dirs: test
  build-depends:
    , base
    , unpacked-maybe-numeric

test-suite laws
  import:         build-settings
  type:           exitcode-stdio-1.0
  main-is:        laws.hs
  hs-source-dirs: test
  build-depends:
    , base
    , QuickCheck
    , quickcheck-classes
    , unpacked-maybe-numeric

source-repository head
  type:     git
  location: git://github.com/byteverse/unpacked-maybe-numeric.git