Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More thoroughly document what is (and isn't) allowed in the README #441

Merged
merged 1 commit into from
Feb 24, 2020

Conversation

RyanGlScott
Copy link
Collaborator

This patch fleshes out some more details about what singletons
can and can't do in its README. The key changes are:

  1. There is a new "Promotion and partial application" section that
    explains what defunctionalization is in some amount of detail.
    There is also a new subsection that explains the limitations of
    the genDefunSymbols function that were observed in Knowing what is (and isn't) defunctionalized can be confusing #429.
  2. The "Supported Haskell constructs" section has received some more
    love. Some Haskell features were inaccurately characterized
    (e.g., pattern signatures are really only partially supported),
    so I also reorganized some of the bullet points. I have also added
    a new bullet point for ScopedTypeVariables under the
    "Little to no support" section, as Promoting expression signatures can fail on GHC 8.10+ #433 reveals that promoting
    functions that rely on the behavior of ScopedTypeVariables is
    terribly fragile (and not easy to fix).
  3. Lots of little formatting and grammar fixes to make the prose in
    the README flow better.

Note that this patch does not fix either of #429 or #433—it just
documents the rather unsatisfying current state of affairs.

Copy link
Owner

@goldfirere goldfirere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this rewrite!

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
This patch fleshes out some more details about what `singletons`
can and can't do in its `README`. The key changes are:

1. There is a new "Promotion and partial application" section that
   explains what defunctionalization is in some amount of detail.
   There is also a new subsection that explains the limitations of
   the `genDefunSymbols` function that were observed in #429.
2. The "Supported Haskell constructs" section has received some more
   love. Some Haskell features were inaccurately characterized
   (e.g., pattern signatures are really only partially supported),
   so I also reorganized some of the bullet points. I have also added
   a new bullet point for `ScopedTypeVariables` under the
   "Little to no support" section, as #433 reveals that promoting
   functions that rely on the behavior of `ScopedTypeVariables` is
   terribly fragile (and not easy to fix).
3. Lots of little formatting and grammar fixes to make the prose in
   the `README` flow better.

Note that this patch does _not_ fix either of #429 or #433—it just
documents the rather unsatisfying current state of affairs.
@RyanGlScott RyanGlScott merged commit 888a82f into master Feb 24, 2020
@RyanGlScott RyanGlScott deleted the document-T429 branch February 24, 2020 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants