Based on superrecord, but simplified. No automatic field reordering. No GHCJS bits inside. Easier to hack on.
-
Nice construction syntax:
Rec (#id := 18853, #orderId := "MG13-233")
-
Provides
Genericinstances out of the box. Aeson, etc can't believe these aren't normal records! AnythingGeneric-derived just works. -
Provides
generic-lensandgeneric-opticsinstances out of the box. Due to those custom instances, we support polymorphic updates. -
O(1) field access, O(n) construction.
-
PureScript-style partial records — if you have a
Rec ("foo" := Int ': rest),HasField "foo"will work just fine.
IDE support is available inside nix-shell. For example, if you use VS Code, you may launch it as:
nix-shell --run "code ."Run bin/test for fast-reloading tests. When library sources change, the test script will reload instantly and re-run the tests.
- Documentation.
- Expose all internals.
-- NOTE: doesn't use 'KeyDoesNotExist'— fix this.RemoveAccessTo— can we get rid of it?
- The
JRec.Internalmodule is entirely based on the code from superrecord.