> Currently, the expression `f.g` will attempt to compose the function bound to `f` with the function bound to `g`.
So what will this mean now? Will function composition require a space between the dot, or how will a “record dot” be disambiguated?
So what will this mean now? Will function composition require a space between the dot, or how will a “record dot” be disambiguated?
.g is a field selector.
f.g is field selection of a record.
f . g is function composition.
f. g is function composition.
While I wouldn't write f. g, if I see it, it's not hugging the field name so it's composition. I don't think I'd have trouble reading it.
But... it will probably trip up newbies and people with odd spacing styles. Hopefully GHC can give a useful error like "In the field selection expression f.g, g is a function defined on XX. Did you mean f . g?"
> :t (. id)
> (. id) :: (b -> c) -> b -> c
(:t prints the type of an expression, and id is the "identity function" that's b -> b here.)(EDIT: Maybe you know the above and you're asking if it's being changed in the proposal. It doesn't seem so to me.)