With Haskell, how do I...

read a file from disk ?

The advanced way is to use pipes or conduit. Expand.