monads are described as the haskell solution to deal with IO. I was wondering if there were other ways to deal with IO in pure functional language.
Uniqueness typing is used in Clean