Rename .case to .tag (and maybe more)
What
-
Change the stags spec (see spec.md)
-
case
->tag
- tags can be named however you want
-
specs
object added to Type - Type has a list of tags instead of cases being keys on the type
-
-
Specs clean up the source
- Specs make it possible to have typeclasses
- Specs make it possible to have generated placeholders: #54
- Behaviours/functions clearly delineated by spec
- Easier to extend, and contribute
Closes #56 (closed), #51 (closed), #31 (closed)
Why
A lot of compromises were made to cater for statically defined types (pojo structs, classes, named functions).
I've found I rarely use that, but still really like everything else about stags, serialization, an open spec, performance, type checking, clarity etc.
So this PR changes the spec to accommodate real world usage, which is exactly what this project is all about.
Questions?
Breaking changes, removes sameTag
, removed Maybe
(keeps `maybe).
Edited by James