Pinafore is an interpreted purely functional language using Algebraic Subtyping that explores structuring information and composing graphica
Pinafore, a new language designed by @polyaletheia which has algebraic subtyping and is designed first and foremost for GTK user interfaces)
(For a "quick" intro on why algebraic typing is cool, I recommend watching "Monads are everywhere, maybe that's bad?". This is first an excellent introduction to monads if you're not already familiar with them, but then goes a little deeper into their drawbacks. In particular, a big limitation of monads is how monadic error handling with stuff like Result<T, E> requires that all the error types E1, E2, ... in a given functional "chain" need to be descended from a common type and/or contain field properties with the true error contents, which kind of defeats the purpose of having a type system in the first place. Monad transformers are one way around this but they are a pain and haven't (yet?) taken hold among "working-class programmers". But algebraic typing is another possible way out.)























