Agda-style equational reasoning in Haskell