CLC Proposal: Make `($)` fully representation polymorphic
Note I strike out lines that do not apply to this PR
-
are either individually buildable or squashed -
have commit messages which describe what they do (referring to [Notes][notes] and tickets using #NNNN
syntax when appropriate) have added source comments describing your change. For larger changes you likely should add a [Note][notes] and cross-reference it from the relevant places.add a testcase to the testsuite.-
I have opened an issue at the clc github repo to make ($)
fully representation polymorphic and this is the corresponding PR as requested by @Bodigrim -
I have built GHC 927
with this change and built the clc stackage with it -
I have corrected all tests that were failing due to this change -
I have added documentation of the change in strictness as requested by @Bodigrim -
I have added a changelog entry -
The proposal has been approved by the CLC https://github.com/haskell/core-libraries-committee/issues/132#issuecomment-1487456854
Warning The proposal introduces potentially breaking changes
as pointed out by @monoidal,
($)
will be more strict, i.e. whereseq (undefined $) ()
previously was equal to()
, it will now be_|_
this will change how some optimizations happen in some situations, as arity analysis will be affected by this change