module Hedgehog.Classes.Common.IO
  ( genIO
  , showIO
  ) where

import Hedgehog
import System.IO.Unsafe (unsafePerformIO)

genIO :: Gen a -> Gen (IO a)
genIO gen = fmap pure gen

showIO :: Show a => IO a -> String
showIO io = unsafePerformIO $ do
  x <- fmap show io
  let y = "IO " ++ x
  pure y