packages feed

haskell-debugger-0.13.0.0: test/golden/T217/Main.hs

newtype D a = D {unD :: D a -> a}
newtype B = B (Either String Bool)
  deriving Show
{-# OPAQUE f #-}
f :: B -> Either B B
f b = Left b

main = do
  let doit = const (pure () :: IO ())
  let y = D (const $ 'y')
  let x :: (a ~ IO ()) => a
      x = print ()
  -- to preserve newtype constructor `B` in reconstructed Term we must not force `ix`
  -- until after the breakpoint.
  ix <- pure $ B (Left "A")
  putStrLn "helio"
  doit ()
  print $ unD y y
  x
  print (f ix)