Skip to content

Rename .case to .tag (and maybe more)

James requested to merge jf/rename into master

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

Merge request reports