@hackage attenuation0.1.0.0

Representational subtyping relations and variance roles.

This lets you coerce containers (among other things) from stronger types to weaker types with zero runtime cost when it's safe to do so, e.g. [Fin n] -> [Int]. This primarily comes into play when using newtypes to impose additional invariants on existing types.