On 2015-05-11 14:33:51 -0400, Benjamin Greenman wrote:
>    This program gives a confusing error message. Does anyone know why the
>    "xs" in the body doesn't have type "(List Foo)"? 

It's because the type `Foo` is not defined, so it cannot have a sensible
representation. Erroneous types like this `Foo` are turned into `Error` (unless
the error stops the type-checker).

Error does not propagate (i.e., (Listof Error) != Error) so you can get weird
error messages like this.

;;;

Maybe we should consider just terminating the typechecker when it hits
undefined types (or other malformed types) instead of trying to continue?

I know that the current behavior of Error types causes at least one soundness
bug in the top-level.

Cheers,
Asumu

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to