@hackage applicative-numbers0.1.3
Applicative-based numeric instances
Installation
Dependencies (1)
Dependents (6)
@hackage/ComonadSheet, @hackage/tidal, @hackage/acme-everything, @hackage/shady-gen, @hackage/type-unary, @hackage/shady-graphics
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-2013 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