data A = A | B | C

some :: A -> IO ()
some a = do
    foo
    bar a
  where
      foo = putStrLn "Hi"

      bar :: A -> IO ()
      bar A = _w0
      bar B = _w1
      bar C = _w2