For a simple Haskell program, for example
main = putStrLn "Hello"
I would like to know where it goes into the functional world of Haskell and C is introduced . If I try to set a breakpoint in ghci in putStrLn, I get an error:
ghci> :break putStrLn
cannot set breakpoint on putStrLn: module System.IO is not interpreted
Is there another way inside ghci to set a breakpoint in the internal I / O functions (perhaps some special parameter, or by compiling ghci in a special way?). I would like to put putStrLn to the libraries /Base/System/IO.hs(putStrLn) or further to the libraries /Base/GHC/IO/Handle/Text.hs(hPutStrLn) to see where it goes in C.
Or maybe someone can sketch out which paths are followed until syscall () is reached?