Tom Pledger writes:
> Mark P Jones writes:
> > [...]
> >
> > In general, I think you need to know the types to determine what
> > transformation is required ... but you need to know the
> > transformation before you get the types. Unless you break this
> > loop (for example, by supp
Tom Pledger writes:
> [...]
>
> For example, with FLAMV = free variables which will be lambda-bound,
> and FLETV = free variables which will be let-bound, and ! marking the
> alleged innovations:
>
> h = \x -> (x==x) || h True || h "hello"
> [...]
> ---
Mark P Jones writes:
> [...]
>
> In general, I think you need to know the types to determine what
> transformation is required ... but you need to know the
> transformation before you get the types. Unless you break this
> loop (for example, by supplying explicit type signatures, in which
Hi Tom,
Thanks for an interesting example!
| For this code (an example from the Combined Binding Groups section of
| Mark Jones's "Typing Haskell in Haskell"):
|
| f :: Eq a => a -> Bool
| f x = (x == x) || g True
| g y = (y <= y) || f True
|
| Haskell infers the type:
| g ::