applicative-numbers
Version 0.0.9 revision 0 uploaded by ConalElliott.
Package meta
- Synopsis
- Applicative-based numeric instances
- Description
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.
Instances of
Num
classes for applicative functors. To be#include
'd after definingAPPLICATIVE
as the applicative functor name andCONSTRAINTS
as a list of constraints, which must carry its own trailing comma if non-empty. TheAPPLICATIVE
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
- Author
- Conal Elliott
- Bug reports
- n/a
- Category
- Data, Numerical
- Copyright
- (c) 2009 by Conal Elliott
- Homepage
- http://haskell.org/haskellwiki/applicative-numbers
- Maintainer
- conal@conal.net
- Package URL
- http://code.haskell.org/applicative-numbers
- Stability
- experimental