f :: Int f = g g = h h = error "in h" main = do putStrLn "in main" print f