Ready to try out! This is not used in production anywhere yet, and the docs are incomplete, so try it out with the appropriate amount of caution.
- No partial functions.
- No silently incorrect functions.
- Compile errors for instances that must not exist
- Batteries included, otherwise users will write their own batteries, incorrectly
Really Safe Money | Safe Money | Dollaridoos | Plutus values | Money | Simple Money | |
---|---|---|---|---|---|---|
Amounts with type-level currency | ✔️ | ✔️ | C [1] | ✖ | ✔️[2] | ✔️ |
Amounts without type-level currency | ✔️ | ✖️ | C | ✔ | ✖ | ✖ |
A type for positive-only amounts | ✔️ | ✖ | C | ✖️ | ✔ | ✖ |
A type for positive or negative amounts | ✔️ | ✔ | C | ✔ | ✖ | ✔ |
No amounts without minimal quantisation | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ |
No-floating-point representation | ✔️ | ✔️ | ✖️ | ✔️ | ✔️ | ✖ |
Fixed-sized representation | ✔️ | ✖ | C | ✖️ | ✖ | ✔️ |
No 'Num' instance for amounts | ✔️ | ✖ | ✖ | ✔️ | ✖ | ✔️ |
Type-errors for instances that must not exist | ✔️ | ✔ | ✖ | ✖ | ✖ | ✖ |
Multi-amounts | 🚧 | ✖️ | ✖️ | ✔️ | ✖ | ✖ |
Addition | ✔ | ✔ | ✔ | ✖ | ✔️ | ✔ |
Subtraction | ✔ | ✔ | ✔ | ✖ | ✔️ | ✔ |
Integer scalar multiplication | ✔ | ✔️ | ✔️ | ✖ | ✔️ | ✔ |
Integer division | ✔ | ✖️ | ✖️ | ✖ | ✖ | ✖ |
Distribution | ✔ | ✖️ | ✖️ | ✖ | ✖ | ✖ |
Fractional multiplication | ✔ | ✔ | ✔ | ✖ | ✔️ | ✔️ |
Fractional multiplication with correct accounting | ✔ | ✖️ | ✖️ | ✖ | ✖ | ✖ |
[1]: Dollaridoos technically supports multiple currencies, but its Show
instance always uses $
.
[2]: Money technically supports multiple currencies, but only the three that it defines.
- ✔️: Supported
- C: Possible but you have to write some code yourself
- 🚧: Under development
- ✖️: Not supported
- ?: I don't know.
All rights reserved. Contact me if you would like to use this library.