Constant function.

Gets the field labels of a constructor. The list of labels is returned in the same order as they were given in the original constructor declaration.

Gets the fixity of a constructor

Gets the index of a constructor (algebraic datatypes only)

Gets the public presentation of constructors

Gets the datatype of a constructor

This plugin evaluates constant math expressions at compile-time.
For details and full usage information, see;
https://github.com/kfish/const-math-ghc-plugin
To use it to compile *foo.hs*:
> $ cabal install const-math-ghc-plugin
> $ ghc -fplugin ConstMath.Plugin foo.hs
To use it to build a cabal package *packagename*:
> $ cabal install --ghc-options="-package const-math-ghc-plugin
> -fplugin ConstMath.Plugin" packagename
Math should run faster.
Version 1.0.0.0

The package provides normal forms for monads and related structures, similarly to the Operational package. The difference is that we parameterise the normal forms on a constraint, and apply that constraint to all existential types within the normal form. This allows monad (and other) instances to be generated for underlying types that require constraints on their return-like and bind-like operations, e.g. Set.
This is documented in the following paper:
The Constrained-Monad Problem. Neil Sculthorpe and Jan Bracker and George Giorgidze and Andy Gill. 2013. http://www.ittc.ku.edu/~neil/papers_and_talks/constrained-monad-problem.pdf
The functionality exposed by this library is also used internally by the Set-Monad and RMonad packages.
Version 1.0.0

Constraint manipulation
Version 0.3.4.2

The constructible reals are the subset of the real numbers that can be represented exactly using field operations (addition, subtraction, multiplication, division) and positive square roots. They support exact computations, equality comparisons, and ordering.
Version 0.1.0.1

A library of algebra focusing mainly on commutative ring theory from a constructive point of view.
Classical structures are implemented without Noetherian assumptions. This means that it is not assumed that all ideals are finitely generated. For example, instead of principal ideal domains one gets Bezout domains which are integral domains in which all finitely generated ideals are principal (and not necessarily that all ideals are principal). This give a good framework for implementing many interesting algorithms.
Version 0.3.0

Representation of constructors. Note that equality on constructors with different types may not work -- i.e. the constructors for False and Nothing may compare equal.

Public representation of constructors