File: semirings.cabal

package info (click to toggle)
haskell-semirings 0.6-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 144 kB
  • sloc: haskell: 1,437; makefile: 6
file content (84 lines) | stat: -rw-r--r-- 2,569 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
name:          semirings
category:      Algebra, Data, Data Structures, Math, Maths, Mathematics
version:       0.6
license:       BSD3
cabal-version: >= 1.10
license-file:  LICENSE
author:        chessai
maintainer:    chessai <chessai1996@gmail.com>
stability:     provisional
homepage:      http://github.com/chessai/semirings
bug-reports:   http://github.com/chessai/semirings/issues
copyright:     Copyright (C) 2018 chessai
synopsis:      two monoids as one, in holy haskimony
description:
  Haskellers are usually familiar with monoids and semigroups. A monoid has an appending operation `<>` (or `mappend`),
  and an identity element, `mempty`. A semigroup has an appending `<>` operation, but does not require a `mempty` element.
  .
  A Semiring has two appending operations, `plus` and `times`, and two respective identity elements, `zero` and `one`.
  .
  More formally, a Semiring R is a set equipped with two binary relations `+` and `*`, such that:
  .
  (R,+) is a commutative monoid with identity element 0,
  .
  (R,*) is a monoid with identity element 1,
  .
  (*) left and right distributes over addition, and
  .
  multiplication by '0' annihilates R.

build-type:    Simple
extra-source-files: README.md CHANGELOG.md
tested-with:   GHC == 7.10.3
             , GHC == 8.0.2
             , GHC == 8.2.2
             , GHC == 8.4.4
             , GHC == 8.6.5
             , GHC == 8.8.4
             , GHC == 8.10.2

source-repository head
  type: git
  location: git://github.com/chessai/semirings.git

flag containers
  description:
    You can disable the use of the `containers` package using `-f-containers`.
    .
    Disabling this may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag unordered-containers
  description:
    You can disable the use of the `unordered-containers` package using `-f-unordered-containers`.
    .
    Disabling this may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

library
  default-language: Haskell98
  ghc-options: -Wall

  build-depends:
      base >= 4.8 && < 5
    , base-compat-batteries
  exposed-modules:
    Data.Euclidean
    Data.Field
    Data.Semiring
    Data.Star
    Data.Semiring.Tropical
    Data.Semiring.Generic

  if impl(ghc < 8.6.1)
    build-depends: template-haskell >= 2.4.0.0

  if flag(containers)
    build-depends: containers >= 0.5.4 && < 0.7

  if flag(unordered-containers)
    build-depends:
        hashable >= 1.1  && < 1.4
      , unordered-containers >= 0.2  && < 0.3