Haskell didn't invent linear types. Eg Clean had them for ages to do IO. (They didn't use Monads in Clean.)
Reply on news.ycombinator.com