Enforce that all interfaces are types via Checkstyle

[minor] IllegalStateException or (perhaps better) UnsupportedOperationException? But do we need an exception here? Is the private constructor with a comment such as `// should never be instantiated` not sufficient?