# The applicative-numbers package

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`

## Properties

Versions | 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 |
---|---|

Change log | None available |

Dependencies | base, wl-pprint [details] |

License | BSD3 |

Copyright | (c) 2009 by Conal Elliott |

Author | Conal Elliott |

Maintainer | conal@conal.net |

Stability | experimental |

Category | Data, Numerical |

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

Uploaded | Mon Apr 27 18:38:48 UTC 2009 by ConalElliott |

Distributions | NixOS:0.1.3 |

Downloads | 2805 total (52 in last 30 days) |

Votes | |

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

## Modules

*Data**Numeric*

[Index]

## Downloads

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

#### Maintainers' corner

For package maintainers and hackage trustees