Incoherence

Ross Paterson ross@soi.city.ac.uk
Thu, 25 Oct 2001 18:04:51 +0100


On Thu, Oct 25, 2001 at 09:47:31AM +0000, Levent Erkok wrote:
> Another place where `:=' bindings are badly needed is the recursive
> do-notation (mdo, as supported in hugs.) In an mdo, let bindings have
> to be monomorphic, because they are passed back to the mfix loop in a
> lambda binding. Hence, if we had :=, we can simply say that mdo only
> allows let bindings of the `:=' form, and that would clear up the
> whole issue.
>
> I'm no expert, but I think the new proposal for the arrow notation,
> if it allows recursive binding forms, can make use of this facility
> as well.

Yes, let bindings in arrow notation must also be monomorphic, but it's
nothing to do with recursion.  It's because the value being defined is
passed as input to the next arrow.