tengo la siguiente clase de tipos que modela una optimización de consultas similar a SQL: class OptimizableQuery q where
type Optimized q :: *
optimize :: q -> Optimized q
instance Query q
A veces, me encuentro con la "característica" que Haskell sólo coincide con cabezas de instancia, a saber, instance (a ~ NewDataTyp b) => C a
ahora coincidirá con cualquier tipo que sea, es decir, e