applicative-numbers
Applicative-based numeric instances
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@
Available in
| Overlay | Newest | Ebuilds | Last activity | |
|---|---|---|---|---|
| haskell GitHub ↗ | 0.1.3 | 1 | 2 d | details › |