Projects
ReasonML
My colleague Michael Martin-Smucker and I develop and maintain a small but growing ecosystem of libraries for ReasonML/BuckleScript in the Reazen GitHub org.
- relude
- relude is our “standard library replacement” for ReasonML/BuckleScript.
- The purpose of this library is to provide a “batteries included” style of prelude/stdlib based on the powerful abstractions from category theory and abstract algebra.
- The library was primarily inspired by the ecosystems of Haskell, PureScript and Scala libraries like scalaz, cats, and shapeless
- In addition to the math-based abstractions, we provide all the other helper modules and functions that you’d expect from a reasonable standard library.
- relude-parse
- relude-parse is a monadic parsing library, inspired by all the amazing prior art in Haskell/PureScript/Scala
- relude-reason-react
- A “principled” set of helper utilities for [ReasonReact], based on relude’s abstractions
- relude-fetch
- A interop library for the
fetch
API, using the pure abstractions provided by relude
- A interop library for the
- relude-eon
- A date/time library for ReasonML
- relude-csv
- A pure functional CSV parsing library based on relude-parse
- relude-url
- A pure functional URL parsing library based on relude-parse
NixOS
My co-worker Jeff Simpson convinced me to try out NixOS when I had recently gotten a new work computer. I still don’t completely know what I’m doing, but I’m enjoying using this quite different and innovative Linux distro.
Scala
I don’t have any open-source work to list in the Scala ecosystem, but I’ve had the opportunity to learn and work with FP libraries like:
PureScript
I haven’t done as much PureScript as I would like to, but I did a small project for purescript-halogen to wrap a now-deprecated Material Design UI library:
- purescript-halogen-mdl
- Material Design Lite FFI library for Halogen
Haxe
- haxpression and haxpression2
- Math expression parser and evaluation libraries for Haxe
- v1 was a port of a JavaScript library, and v2 was a complete rewrite using a monadic parser approach
- graphx
- A graph traversal/utility library for Haxe
- thx.core
- I had the good fortune of working for Franco Ponticelli, who
is the creator and maintainer of the
thx
family of libraries for Haxe. - I contributed features and bug fixes for the main
thx.core
library and several of the other libraries in the ecosystem
- I had the good fortune of working for Franco Ponticelli, who
is the creator and maintainer of the
- abe
- I worked with the
abe
library (a Haxe binding to the express.js JavaScript library), and the associated set of bindings to other js-basednpm
packages.
- I worked with the
- doom
- Worked with and on a innovative homegrown virtual DOM UI library for Haxe
Unity
I don’t have much to show beyond some tutorial code, but at one time I decided it would be fun to learn the Unity game development framework. Knowing OCaml/ReasonML now I’m a little curious to go back and see what it looks like to use F# with Unity, rather than C#.