17 Mar
2003
17 Mar
'03
4:25 p.m.
[Hal Daume III <hdaume@ISI.EDU>]
It is not. Lets are expressions. Wheres are part of declarations. In a grammar sense, you have something like:
funcdef ::= name = expr (where decls)? expr ::= let decls in expr
so the declarations inside a let are internal to the expression and can't go outside into the where clause.
Shouldn't the layout rule make this apparent? Is the following really OK?
In the function body (rhs):
let { a = (e1) } in (e2) where { b = f a }
I'd say that's pretty misleading, and maybe should be illegal layout...? Matt -- Matt Hellige matt@immute.net http://matt.immute.net