Types have a bad reputation for making code harder to read, adding unnecessary ceremony, and in general complicating things. In this blog post I’d like to show that a type system done right can help make code more readable and toolable without constraining the expressiveness of the language. You can find the updated version of this blog post here: (http://victorsavkin.com/post/123555572351/writing