The trend in the codebase seems to be "one type definition per file", which is cool.
Are we fine with this? If we are I think we should apply it rigorously (see zero-one-infinity), that is even little types and typealias should have their own file.
Thoughts?