The applicative-numbers package
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.
Num classes for applicative functors. To be
APPLICATIVE as the applicative functor name and
CONSTRAINTS as a
list of constraints, which must carry its own trailing comma if non-empty.
APPLICATIVE symbol gets
#undef'd at the end of the include file, so
that multiple includes are convenient.
#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
liftA2 from Control.Applicative
the FlexibleContexts language extension (due to an implementation hack).
Some instances are generated only if a corresponding CPP symbol is
|Versions||0.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|
|Dependencies||base, wl-pprint [details]|
|Copyright||(c) 2009 by Conal Elliott|
|Uploaded||Mon Apr 27 01:29:20 UTC 2009 by ConalElliott|
|Downloads||3869 total (41 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
For package maintainers and hackage trustees