GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2019-07-07T18:13:52Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/15189Avoid word "transformer" in the documentation of ST2019-07-07T18:13:52ZArtem PelenitsynAvoid word "transformer" in the documentation of STI'm unhappy about the current wording in the documentation of the ST module in base. Let me explain why.
Some time ago, as a novice, I struggled to get the difference between three monad-related concepts:
1. The State monad.
1. The Sta...I'm unhappy about the current wording in the documentation of the ST module in base. Let me explain why.
Some time ago, as a novice, I struggled to get the difference between three monad-related concepts:
1. The State monad.
1. The StateT monad transformer.
1. The ST monad.
Current [documentation for ST](http://hackage.haskell.org/package/base-4.11.1.0/docs/Control-Monad-ST.html) says that "ST" stands for state transformer (see everywhere except for the introduction paragraph). While this follows original 1994 paper "Lazy Functional State Threads", I find this confusing after the adoption of term "(monad) transformer" due to 1995 paper "Functional Programming with Overloading and Higher-Order Polymorphism". Note that ST paper predates MT one.
At the same time, the 1994 paper itself (in the title) and some current tutorials, [like the one at HaskelWiki](https://wiki.haskell.org/Monad/ST), use the word "thread" to describe what's going on, avoiding discussion of spelling of ST.
As the bottom line, I think, it would be helpful, especially for a novice, to avoid the word "transformer" in the documentation of ST module.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 8.2.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Documentation |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Avoid word \"transformer\" in the documentation of ST","status":"New","operating_system":"","component":"Documentation","related":[],"milestone":"8.6.1","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.2.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"I'm unhappy about the current wording in the documentation of the ST module in base. Let me explain why.\r\n\r\nSome time ago, as a novice, I struggled to get the difference between three monad-related concepts:\r\n\r\n1. The State monad.\r\n2. The StateT monad transformer.\r\n3. The ST monad.\r\n\r\nCurrent [http://hackage.haskell.org/package/base-4.11.1.0/docs/Control-Monad-ST.html documentation for ST] says that \"ST\" stands for state transformer (see everywhere except for the introduction paragraph). While this follows original 1994 paper \"Lazy Functional State Threads\", I find this confusing after the adoption of term \"(monad) transformer\" due to 1995 paper \"Functional Programming with Overloading and Higher-Order Polymorphism\". Note that ST paper predates MT one. \r\n\r\nAt the same time, the 1994 paper itself (in the title) and some current tutorials, [https://wiki.haskell.org/Monad/ST like the one at HaskelWiki], use the word \"thread\" to describe what's going on, avoiding discussion of spelling of ST. \r\n\r\nAs the bottom line, I think, it would be helpful, especially for a novice, to avoid the word \"transformer\" in the documentation of ST module.","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1Artem PelenitsynArtem Pelenitsynhttps://gitlab.haskell.org/ghc/ghc/-/issues/5518Some unicode symbols are not allow in literal characters or strings2021-04-02T05:58:58ZertaiSome unicode symbols are not allow in literal characters or strings` main = putChar 'ₖ' `
This program is rejected with following error message:
lexical error in string/character literal at character '\\8342'
There is at least a few other characters with the same issue, for
instance this whole string ...` main = putChar 'ₖ' `
This program is rejected with following error message:
lexical error in string/character literal at character '\\8342'
There is at least a few other characters with the same issue, for
instance this whole string should be accepted:
` "ₕₖₗₘₙₒₚᵣₛₜᵤᵥₓ" `
A related issue is that GHCi do not let me paste these characters either.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 7.2.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Some unicode symbols are not allow in literal characters or strings","status":"New","operating_system":"","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.2.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{ main = putChar 'ₖ' }}}\r\n\r\nThis program is rejected with following error message:\r\nlexical error in string/character literal at character '\\8342'\r\n\r\nThere is at least a few other characters with the same issue, for\r\ninstance this whole string should be accepted:\r\n{{{ \"ₕₖₗₘₙₒₚᵣₛₜᵤᵥₓ\" }}}\r\n\r\nA related issue is that GHCi do not let me paste these characters either.","type_of_failure":"OtherFailure","blocking":[]} -->8.8.1Artem PelenitsynArtem Pelenitsyn