>to tell the compiler 'evaluate this to a static value'. I'd suggest
>doing it via a pseudo-function
> static :: a -> a
>which behaved like the identity function, except that it evaluated
>its argument rather eagerly at compile time.
AFAIK eagerness isn't addressed by the Haskell language. Since Mechveliani
is primarily concerned with compile-time diagnostics rather than
efficiency, wouldn't eagerness be irrelevant?
--------------------
But it is on demand. Switched on for the some expression by the key word
like `static'.
For example, we do not complain on that the compiler checks the types
eagerly.
Also this all does not mean breaking the lazy semantic.
For example, the static error report for
if {-# static x #-} then error ...
else y
takes pace only when the compiler proves that `else' never performs,
when everything is computed "lazily".
If only I understand the direction of comments ...
------------------
Sergey Mechveliani
[EMAIL PROTECTED]