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;
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.
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.
Return a list of values of a datatype. Each value is one of the possible constructors of the datatype, populated with empty values.
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.
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.
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
This module provides more flexible versions of common type classes that use the ConstraintKinds extension. This allows us to make types that require constraints instances of the popular classes. For example, we reimplement Functor and Foldable using the ContraintKinds style. This allows us to manipulate lists and unboxed vectors using the same functions.
This library needs a lot of work before it can be considered ready for others to use. Right now, only those instances needed by the HLearn library have been implemented in this library.
The constant functor.
Gets the constructors of an algebraic datatype
Build a term skeleton
Build a term and use a generic function for subterms
Gets the constructor for an index (algebraic datatypes only)
Gets the maximum constructor index of an algebraic datatype
Makes a constructor for Char.
Constructs a constructor
This function is now deprecated. Please use mkRealConstr instead.
Show more results