Applicative-based numeric instances http://haskell.org/haskellwiki/applicative-numbers
|Latest on Hackage:||0.1.3|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
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.
Data.Numeric.Function for an example.
Project wiki page: http://haskell.org/haskellwiki/applicative-numbers
Copyright 2009-2013 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
the FlexibleContexts language extension (due to an implementation hack).
Some instances are generated only if a corresponding CPP symbol is