Well, slower compile times, and additional complexity are the biggest cons.
There is a project I'm working on to eliminate the latter bit - ideally, a way to represent these complex types with "zero type-level code"
There is a project I'm working on to eliminate the latter bit - ideally, a way to represent these complex types with "zero type-level code"