The truth about what Haskell functions return is spooky