<Haskell equivalent of Kotlin's invariant types> I...
# stackoverflow
u
Haskell equivalent of Kotlin's invariant types In Kotlin i can do sealed class Substance { object Uranus : Substance() object Mercury: Substance() object Ammonia : Substance() } data class DangerousBox(val item: T) fun main() { val uranus = DangerousBox(Substance.Uranus) val mercury: DangerousBox = uranus } Now i have invariant types DangerousBox, DangerousBox etc., so sample above would't compile. How make it in Haskell? Ideally i would like to have types uranus :: DangerousBox Uranus uranus = DangerousBox Mercury...