Algebraic Data Types - Development 2018-06-24

By Max Woerner Chase

In this post:

So, I was mostly focused on the documentation for now, but I made a few changes to the code.

The most obvious improvement to me was the removal of the coverage append instructions. Those are incorrect, and mostly irrelevant until there's more than one supported version. Currently, there's sort of zero supported versions, because 3.7 isn't out yet.

Fixing up the versions will make a lot of things work better, and it's a little frustrating waiting for the release. The online docs are broken in a way that I found extremely non-obvious: because Read the Docs tried to build the docs using Python 2.7, importing the package failed with a syntax error against the metaclass syntax. That's all well and good, as far as failures go, but the error didn't fail the build??? Anyway, that's why the "reference" section is empty: because my annotation extension library doesn't import cleanly under Python 2. Again, I'll try to address this when 3.7 releases.

I don't have "usage" filled out. I kind of want to work out the dependencies between the different components, and factor them into their own modules. One idea I want to consider on its own, though, is giving the modules short names, or recommending a short name to import structured_data under, such as s_d. There are two obvious sets of features provided by structured_data: sum type definitions, and pattern matching capabilities. However, they can't just be cleanly split in two, because that structure leads to a bunch of circular dependencies. Unless some of the dependencies I have are wrong. They may very well be.

One thing that had me uncertain about documenting things was the fact that I'm not at all sure that the way I'm doing things right now, against a version that outright does not work in various ways, is how I want to do things.

Once I had the other changes basically done, I edited the changelog to look a little more like what Keep a Changelog recommends.

I didn't make quite as much progress as I would have liked; I'll try to fit in some extra development on Wednesday-ish.

Next time, wrapping this week up.