Type systems. They are a means to define, restrict, and refine data. There is endless debate around them. How useful they are, how neccesary they are, how powerful or restricting they are. yadda, yadda, yadda. blah, blah, blah.

As someone the comes from a dynamically typed background, I tend to find them restrictive. There are a multitude of nominal type systems that force objects and data into one specific box. A select number of structually typed languages that don't quite check all my boxes. But, I do find them types useful.

My primary interest in types are what you can express and how you can interact with them at runtime. The ability refine them at any time, access to intelligent code completion, the ability to type on multiple propeties of my data. Lots of things I can list here. However, there is one feature more important than any other: the ability to poke and prod the compiler.

I like exploring languages and seeing what ideas they bring to the table. I like static typing and seeing what I can get away with. And, I want to share that exploration. Expect ugly code, weird quirks, and so so many type errors.