Applicative-based numeric instances http://haskell.org/haskellwiki/applicative-numbers
|Stackage Nightly 2017-05-05:||0.1.3|
|Latest on Hackage:||0.1.3|
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