Can someone explain what this means, practically speaking? I know Haskell fairly well, but am not familiar with linear types. These are types that can be used only once, right?
I liked this paper:
http://www.cs.utexas.edu/~hunt/research/hash-cons/hash-cons-...
And previous discussion: https://news.ycombinator.com/item?id=20369522
Simon Peyton Jones talk: https://www.youtube.com/watch?v=t0mhvd3-60Y
As someone who has been exploring doing gamedev in Haskell, that all is very exciting and the use-cases are constantly obvious to me.
It is entirely up to userspace to leverage this new feature. It doesn't do anything on its own outside of the type-checker. And to use it, your library will probably have to do some unsafe coercion under the hood (just like ST uses unsafePerformIO under the hood to do pure mutability.)