[MLton] mlb support

Matthew Fluet fluet@cs.cornell.edu
Tue, 27 Jul 2004 11:07:45 -0400 (EDT)

> I agree it's messy.  Do you have an idiom in mind where
> "warnLocalUnused false" would be useful?

Not really.  I can imagine situations where one might like to go back to
the defaults set on the command-line (which would be a trivial annotation
to add).

> If not, why not drop
> warnLocalUnused for a single annotation that marks everything in scope
> as used; call it "forceUsed" or "useExports".

I considered this, and I guess it is a reasonable solution.  There is a
little verbosity, in that I would end up writing:

  ann warnUnused true, forceUsed in ... end

which is a common idiom, I imagine.

> This would also let you
> turn Control.warnUnused into a WarnUnused.t ref, since there will be
> no need to expose its history.

I'd turn it into a bool.  I was also using the list-ness to see if
processing the annotations changed the warnUnused control (by checking the
list length).  I'd just need to do something similar with forceUsed.

> I'm also wondering about the fact that "warnLocalUnused true" enables
> warnings despite the setting of warnUnused.  Since people can already
> enable this with "warnUnused true", why not decouple that?

Fair enough.