yap: yet another prelude - a simplistic refactoring with algebraic classes

[ algebra, bsd3, library, prelude ] [ Propose Tags ]

A simple refactoring of the Prelude numeric classes, attempting backwards compatibility for clients by defining a few algebraic classes as superclasses of the Haskell 98 numeric classes. This yields the following class hierarchy (grey classes are unchanged):

Prelude.YAP is an almost-compatible replacement for the standard Haskell Prelude, as long as you're not defining instances of the numeric classes (though defaulting will be affected). When importing it, turn on RebindableSyntax.

Data.YAP.Algebra contains just the new classes; you'll need to import it if you want access to the new names, including to define instances.

Other modules contain some example instances, including for the existing types Complex and Ratio.


  • 0.0: initial version

  • 0.1: moved fromRational back to Fractional, as it isn't well-behaved for all fields. Removed realToField.

  • 0.2: removed Eq and Show constraints from Num, following base-4.5.


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.0, 0.1, 0.2
Dependencies base (>=4.5 && <6) [details]
License BSD-3-Clause
Author Ross Paterson <ross@soi.city.ac.uk>
Maintainer Ross Paterson <ross@soi.city.ac.uk>
Revised Revision 1 made by RossPaterson at 2021-07-10T09:33:28Z
Category Algebra, Prelude
Uploaded by RossPaterson at 2012-02-03T22:21:07Z
Distributions NixOS:0.2
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 2509 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]