Over-engineering in Haskell

Vladislav captures this succintly:

Over-engineering.

Don’t try to encode too much at the type level, the type system has its limits.

With experience, you will discover these limits.

See also