
#6018: Injective type families -------------------------------+------------------------------------------- Reporter: lunaris | Owner: simonpj Type: feature | Status: new request | Milestone: 7.10.1 Priority: normal | Version: 7.4.1 Component: Compiler | Keywords: TypeFamilies, Injective Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: #4259 None/Unknown | Test Case: | Blocking: | -------------------------------+------------------------------------------- Comment (by hpacheco): Is there a current version of the path that works against the current GHC HEAD? The 2-year-old one fails. I can say that I have been trying to define injective type families ever since TypeFamilies were introduced! Especially to define functions like the fmap that MikeIzbicki showed or very simple type-level aliases between different type classes. It also increases modularity. For example, to define the datatypes in different modules, and define an type family aliases in a parent module. {{{ module A where data A = ... data FA = ... module B where data B = ... data FB = ... module Main where import A import B type family F a :: * type instance F A = FA type instance F A = FB }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/6018#comment:27 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler