
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stefan O'Rear wrote:
the current type:
data Dynamic = Dynamic TypeRep Obj
the new type, if lucky:
Meaning the one with "Typeable a =>" instead of TypeRep?
data Dynamic = Dynamic !(a -> TypeRep) a
if unlucky:
data TypeableD a = TypeableD (a -> TypeRep) data Dynamic = Dynamic (TypeableD a) a
either way, the typeclass approach gives a lot more boxing.
Yes, that's why I don't really propose that, because it's probably inefficient (for dictionary-passing-based implementations anyway), just that the "Obj" in Dynamic's constructor should be, type-system-wise, an existential instead (which I don't think will change the runtime representation, but I don't know how to test that). Isaac -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF6Lz4HgcxvIWYTTURAggEAKCdexJu4irOk2CiIfLfyatJfzIrgACgzokb kTlzxONc+tL+i5IJIkShMqk= =H/tO -----END PGP SIGNATURE-----