@shirleyquick That's great, I didn't know about the `requiresInit` pragma, thanks! I looked for something like a private constructor on google but those were the wrong keywords. It's too bad about the casting, I wish there were a way to forbid it.
@Arak I'm thinking of data science workflows I've had to work on in the past, in that case I'd want something very easily manipulable and that doesn't require a lot of conversion back of forth. But point taken on a general basis. @PMunch Indeed, I'm just looking to enforce good code by default. I read your jsonschema, it sounds inline with the kind of things I had in mind. I couldn't grok the implementation because I'm not fluent enough in ast manipulation, so it's bookmarked for later =)!