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