There are a very small number of truly orthogonal ideas in programming language design. The point of this post is to document them.
Interfaces go by many names, but all are interfaces:
Hierarchical object store
Fundamentally, files are just objects. We really shouldn’t need to implement a parser for each different file type, because there should be a one-to-one mapping between file types and plain-old-data file types.
interface of a tagged union
interface of an untagged union
interface of a bool
interface of a