Wolfgang Lux wrote:
> [...] I admit that this is not the most general
> type that could be inferred for bot, but it is the most general
> type that
> can safely be inferred for bot without using a groundness analysis (or
> adding just a special case for local definitions of the form x = x).
I have to correct myself (once more). It turns out that adopting ML's
value restriction is sufficient in order to infer type forall a.a for
bot in a local definition. Here is the output of a session with the
patched type checker.
wlux_at_Onyx:wlux % ~/Projects/curry/build.noindex/cyi
_____ __ __
/ ___/ | / _ Muenster Curry Compiler
/ / | / | | Version 0.9.10, Copyright (c)
1998-2006
/ /___ / / | |
\____/ /_/ |_| Type :h for help
Default options set to -Whaskell -Wunused -Woverlap
Prelude> :t let bot :: a; bot = bot in (1:bot, 'a':bot)
([Int], [Char])
Prelude> :q
[Leaving cyi]
Regards
Wolfgang
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Mo Dez 18 2006 - 13:18:41 CET