[Haskell-cafe] Existentials and type var escaping

Isaac Dupree isaacdupree at charter.net
Thu May 31 17:44:49 EDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Roberto Zunino wrote:
> In this function
> 
> data C = C Int
> foo :: C -> C
> foo ~(C x) = C x
> 
> foo is _not_ the identity: its result must be non bottom, i.e. the
> constructor C is "forced" to its argument.

foo undefined = undefined
foo (C undefined) = C undefined
foo (C 13) = C 13

Looks like the identity to me? (id _is_ strict after all)

foo' (C x) = x `seq` (C x)
would be different though:
foo' (C undefined) = undefined

Isaac
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGX0HQHgcxvIWYTTURAoE2AKDFNn2bSVqoVjqWj8jyBfgKjYVh1gCeLqdT
pGz49AfTUbblaMeeyBR8a84=
=sFp6
-----END PGP SIGNATURE-----


More information about the Haskell-Cafe mailing list