# Mutable Value Semantics Trend vs Immutability

**URL:** <https://discourse.haskell.org/t/mutable-value-semantics-trend-vs-immutability/7619>\
**Category:** Uncategorized\
**Created:** [September 19, 2023, 5:39am UTC](https://discourse.haskell.org/t/mutable-value-semantics-trend-vs-immutability/7619 "2023-09-19T05:39:01Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![atravers](https://avatars.discourse-cdn.com/v4/letter/a/45deac/32.png) [@atravers](https://discourse.haskell.org/u/atravers)\
**Post date:** [October 15, 2023, 9:09pm UTC](https://discourse.haskell.org/t/mutable-value-semantics-trend-vs-immutability/7619/13 "2023-10-15T21:09:35Z")

</div>

> [@HeinrichApfelmus](#):
>
> What I meant was more “why mutability in the first place" […]

From the abstract of [State in Haskell](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.52.3656&rep=rep1&type=pdf) (1995):

- 

> [@](#):
>
> Some algorithms make critical internal use of updatable state, even though their external specification is purely functional.

…with the caveat that some of _those_ algorithms have now been superseded by _“mutability-free”_ alternatives - otherwise, there’s still the type `ST s a`, and most importantly:

`runST :: (forall s . ST s a) -> a`

- 

> [@](#):
>
> The same framework is also used to handle input/output operations […]

…with the caveat that:

> [@](#):
>
> [atravers:](http://discourse.haskell.org/t/what-does-avoid-success-at-all-costs-mean-to-you/5832/2)
> 
> […] this year’s ZuriHac includes invited talks by Conal Elliott and Gabriella Gonzalez - have they finally solved the puzzle of general-purpose denotative **systems** programming?

…oh, that’s right - they didn’t. But they’re not the only ones wanting Haskell to be rid of `IO a`:

[Denotative programming timeline - HaskellWiki](https://wiki.haskell.org/Denotative_programming_timeline)

---

_[View the full topic](https://discourse.haskell.org/t/mutable-value-semantics-trend-vs-immutability/7619)._
