IORef -> TVal
Pipes are Kleisli (ContT () IO) a b