
#12701: Eta reduce type synonyms when possible -------------------------------------+------------------------------------- Reporter: ezyang | Owner: Type: feature | Status: new request | Priority: lowest | Milestone: Component: Compiler | Version: 8.1 (Type checker) | Keywords: backpack | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- If you can eta reduce a type synonym, it is always better: {{{ -- Bad type F a = Maybe a instance Functor F -- illegal, partially applied type synonym! -- Good type F = Maybe instance Functor F -- ok with type synonym instances }}} So... GHC should do this automatically for users. Ordinarily this is not terribly important (thus the priority); in the context of #12680 it is a modestly helpful affordance which allows a user to implement `data Map a` using `type Map a = HashMap a` (signature matching requires the type synonym to be nullary.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12701 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler