# 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 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`

Versions [faq] | 0.0.0, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8, 0.0.9, 0.1.2, 0.1.3 |
---|---|

Dependencies | base, wl-pprint [details] |

License | BSD-3-Clause |

Copyright | (c) 2009 by Conal Elliott |

Author | Conal Elliott |

Maintainer | conal@conal.net |

Category | Data, Numerical |

Home page | http://haskell.org/haskellwiki/applicative-numbers |

Uploaded | by ConalElliott at Mon Apr 27 01:36:09 UTC 2009 |

Distributions | NixOS:0.1.3 |

Downloads | 6084 total (158 in the last 30 days) |

Rating | (no votes yet) [estimated by rule of succession] |

Your Rating | |

Status | Docs uploaded by user Build status unknown [no reports yet] |

## Downloads

- applicative-numbers-0.0.7.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)