[MLton-user] new warn unused anomoly
Vesa Karvonen
vesa.a.j.k at gmail.com
Tue Oct 21 08:09:24 PDT 2008
On Tue, Oct 21, 2008 at 5:10 PM, Sean McLaughlin <seanmcl at gmail.com> wrote:
> I just wanted to contribute a warn-unused anomaly that doesn't occur
> on http://mlton.org/WarnUnusedAnomalies. It regards pattern matching
> in records:
>
> structure Tmp =
> struct
>
> datatype record = R of {x : int * int}
>
> fun doit () =
> let
> val record = R {x = (1, 2)}
> val R {x as (y, z)} = record
> in
> print (Int.toString (y + z) ^ "\n")
> end
Actually, this isn't a warn-unused anomaly. When you write
label as pattern
the label is bound, but when you write
label = pattern
the label isn't bound. So, if you write
val R {x = (y, z)} = record
you shouldn't get the unused warning.
BTW, I hadn't personally noticed that SML's grammar has the "label as
pattern" pattern --- I had to check this from the Definition. So,
thanks for reporting this! :-)
-Vesa Karvonen
More information about the MLton-user
mailing list