# CLC Update (April 2023)

**URL:** <https://discourse.haskell.org/t/clc-update-april-2023/6086>\
**Category:** Core Libraries Committee\
**Created:** [April 3, 2023, 9:40am UTC](https://discourse.haskell.org/t/clc-update-april-2023/6086 "2023-04-03T09:40:35Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ChShersh](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/chshersh/32/2551_2.png) [@ChShersh](https://discourse.haskell.org/u/ChShersh)\
**Post date:** [April 3, 2023, 9:40am UTC](https://discourse.haskell.org/t/clc-update-april-2023/6086/1 "2023-04-03T09:40:35Z")

</div>

As part of my CLC involvement, I committed to writing monthly CLC updates, and this is the 2nd update.

Previous update:

- [CLC Update (March 2023)](http://discourse.haskell.org/t/clc-update-march-2023/5920)

> All CLC work is done by volunteers in their free time.

### Status of all CLC proposals

This month, I started tracking the progress of all `approved` CLC proposals. You can find my update here:

- [CLC: Status of \*\*ALL\*\* proposals](http://discourse.haskell.org/t/clc-status-of-all-proposals/6049/1)

I continue tracking all the ongoing progress as well.

### 🆕 New

> List of **newly opened** proposals since the last update.

- [Buy-in for Technical Proposal #47 · Issue #145 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/145)
- [GHC-internal modules in `base` · Issue #146 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/146)
- [Port ghcjs-base.GHCJS.Foreign.Callback as base.GHC.JS.Foreign.Callback for the GHC JavaScript Backend · Issue #150 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/150)
- [Expose atomicSwapIORef from a public module · Issue #151 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/151)
- [Generalize the type of keepAlive#, touch# · Issue #152 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/152)
- [Support for unaligned reads/writes · Issue #154 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/154)

### ✅ Approved

> List of **approved** proposals since the last update.

- [Restrict the type of `Data.List.NonEmpty.unzip` · Issue #86 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/86)
  - ⚠ API change (breaking, with a deprecation period)

- [Add safe list indexing operator: !? · Issue #110 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/110)
  - API addition (new function in `Data.List`)

- [Make `($)` fully representation polymorphic · Issue #132 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/132)
  - ⚠ API change (compilation won’t break, runtime may break in a theoretical case but nobody was able to provide a real-world example of this case)

- [Use a non-allocating (or less-allocating) implementation of atomicSwapIORef · Issue #139 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/139)
  - Performance

- [Update and expand atomic modification Haddocks · Issue #140 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/140)
  - Documentation
  - Normally, you don’t need to create a CLC proposal for documentation changes but the proposal also wanted to change the laziness and there was some uncertainty about the observability of this change

- [Explicitly define `length`, `elem`, etc. in `Foldable` instance for `Data.Functor.Compose` · Issue #57 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/57)
  - Performance

- [Reject FilePaths containing interior NULs · Issue #144 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/144)
  - ⚠ Runtime change (file functions will now throw exceptions on invalid paths)

- [Define `Eq` and `Ord` instances for `SSymbol`, `SChar`, and `SNat` · Issue #148 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/148)
  - API addition (new instances)

- [Give `COMPLETE` pragmas to `TypeRep`, `SSymbol`, `SChar`, and `SNat` pattern synonyms · Issue #149 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/149)
  - Annotations

### 🚫 Declined

> List of **rejected** proposals since the last update.

- [Move `ClosureType` from ghc-heap into `GHC.ClosureTypes` · Issue #122 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/122)
  - 4 out of 7 CLC members voted against for different reasons

### 🔽 Withdrawn

> List of proposals **withdrawn** voluntarily by their authors.

- [Make quotRem and quot for Int more defined · Issue #142 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/142)
  - The problem looked like a can of worms the author didn’t want to open atm 🥫 🐛

- [Add atomicModifyIORef\_ and atomicModifyIORef'\_ to 'Data.IORef' · Issue #101 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/101)
  - I withdrew my proposal because a different better path forward appeared during the discussion

- [Variants of {new,with}CStringLen which NUL-terminate their output · Issue #153 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/153)
  - There’s no need to export the proposed functions hence a CLC proposal is not required

### 🏜 Abandoned or 💤 Dormant

> List of **abandoned** proposals due to lack of progress from the proposal author.

- [Deprecate partial functions from the Prelude, giving them new quarantined homes · Issue #70 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/70)
- [Changing `IO a` to `IOE e a` for type-level checked exceptions in base · Issue #108 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/108)
- [Deprecate `stToIO` and introduce `safeSTToIO` · Issue #119 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/119)
- [Add Data instance to System.Exit.ExitCode · Issue #121 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/121)
- [Specialize Numeric.showHex/Bin for Word types · Issue #124 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/124)
- [Add HasField instances for tuples to allow tuple-indexing · Issue #143 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/143)

### 🌐 Meta

> List of CLC processes updates and meta improvements.

- [Write expectations from the proposal author explicitly by chshersh · Pull Request #137 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/pull/137)
  - My PR to update the documentation of the CLC processes was merged! 🎉

- [Subject API evolution of array to CLC vote · Issue #103 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/103)
  - A vote was triggered on whether `array` should be governed by CLC

### 🔥 Hot discussions

> List of proposals under the current focus of CLC.

- [GitHub · Where software is built](https://github.com/haskell/core-libraries-committee/issues/107)
- [Expose atomicModifyIORef2 from Data.IORef · Issue #138 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/138)
- [Buy-in for Technical Proposal #47 · Issue #145 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/145)
- [GHC-internal modules in `base` · Issue #146 · haskell/core-libraries-committee · GitHub](https://github.com/haskell/core-libraries-committee/issues/146)

* * *

Feel free to share any feedback on these updates! Do you like the format? Do you like the granularity? Anything else 🙂
