I'm a software engineer and functional programming enthusiast based in Taiwan.
I'm passionate about building software that is reliable and correct.
I'm the maintainer of several Haskell packages:
The monoidmap package provides the MonoidMap type, which represents a total function from keys to monoidal values with finite support and a default of mempty.
There are several complementary packages:
| Package | Description |
|---|---|
π¦ monoidmap |
Provides the core MonoidMap data type and functions. |
π¦ monoidmap-examples |
Provides worked examples of how to use MonoidMap. |
π¦ monoidmap-aeson |
Provides support for JSON encoding with aeson. |
π¦ monoidmap-hashable |
Provides support for in-memory hashing with hashable. |
π¦ monoidmap-quickcheck |
Provides support for property testing with QuickCheck. |
π¦ monoidmap-internal |
Provides low-level internal functions. π |
| Package | Description |
|---|---|
π¦ quickcheck-groups |
QuickCheck support for the groups library. |
π¦ quickcheck-monoid-subclasses |
QuickCheck support for the monoid-subclasses library. |
π¦ quickcheck-quid |
Quasi-unique identifiers for QuickCheck. |
| Package | Description |
|---|---|
π¦ bech32 |
Support for the Bech32 encoding standard. |
π¦ haskell-calculator |
Functional reactive calculator with expression visualization. |
π¦ haskell-example |
Haskell CI template, ready to fork and go. |
π¦ roc-id |
Implementation of the ROC (Taiwan) UID Number (δΈθ―ζ°εη΅±δΈθθ) format. |
If you're interested in collaboration, feel free to reach out to me.
- πΌ LinkedIn: https://www.linkedin.com/in/knowlesjonathan/





