@hackage / acme-one

The identity element of package dependencies

Latest0.0.2

About

Metadata

  • Last updated , by ion
  • License LicenseRef-PublicDomain
  • Maintained by: Johan Kiviniemi <devel@johan.kiviniemi.name>

  • Lottery factor: 0

Links

Installation

Readme

acme-zero and acme-one

Cabal package dependencies form a commutative monoid with an absorbing element. They satisfy the following axioms:

  • Associativity

    For all dependencies a, b and c,

    (a , b) , c = a , (b , c)

    In fact, the Cabal syntax does not even allow you to use the parentheses for this reason.

  • Commutativity

    For all dependencies a and b,

    a , b = b , a
  • Identity element

    For all dependencies a,

    acme-one , a = a
    a , acme-one = a

    Depending on acme-one has no additional effect.

  • Absorbing element

    For all dependencies a,

    acme-zero , a = acme-zero
    a , acme-zero = acme-zero

    Depending on acme-zero in addition has the same effect as only depending on acme-zero.