The applicative-numbers package

[Tags: bsd3, library]

Any applicative functor can be given numeric instances in a boilerplate way. The applicative-numbers package provides an include file that makes it a snap to define these instances. See Data.Numeric.Function for an example.

Project wiki page: http://haskell.org/haskellwiki/applicative-numbers

Copyright 2009 Conal Elliott; BSD3 license.

Instances of Num classes for applicative functors. To be #include'd after defining APPLICATIVE as the applicative functor name and CONSTRAINTS as a list of constraints, which must carry its own trailing comma if non-empty. The APPLICATIVE symbol gets #undef'd at the end of the include file, so that multiple includes are convenient.

For instance,

#define INSTANCE_Ord
#define INSTANCE_Enum

#define APPLICATIVE Vec2
#include "ApplicativeNumeric-inc.hs"

#define APPLICATIVE Vec3
#include "ApplicativeNumeric-inc.hs"

#define APPLICATIVE Vec4
#include "ApplicativeNumeric-inc.hs"

You'll also have to import pure and liftA2 from Control.Applicative and specify the FlexibleContexts language extension (due to an implementation hack).

Some instances are generated only if a corresponding CPP symbol is defined: INSTANCE_Eq, INSTANCE_Ord, INSTANCE_Show, INSTANCE_Enum


Properties

Versions0.0.0, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8, 0.0.9, 0.1.2, 0.1.3
Dependenciesbase, wl-pprint
LicenseBSD3
Copyright(c) 2009 by Conal Elliott
AuthorConal Elliott
Maintainerconal@conal.net
Stabilityexperimental
CategoryData, Numerical
Home pagehttp://haskell.org/haskellwiki/applicative-numbers
Upload dateMon Apr 27 01:36:09 UTC 2009
Uploaded byConalElliott
Downloads1557 total (146 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees