summary of haskell desugaring?