Revise implementation of overlapping type family instances.
This commit changes the syntax and story around overlapping type family instances. Before, we had "unbranched" instances and "branched" instances. Now, we have closed type families and open ones. The behavior of open families is completely unchanged. In particular, coincident overlap of open type family instances still works, despite emails to the contrary. A closed type family is declared like this: > type family F a where > F Int = Bool > F a = Char The equations are tried in order, from top to bottom, subject to certain constraints, as described in the user manual. It is not allowed to declare an instance of a closed family.
Showing
- compiler/coreSyn/CoreLint.lhs 1 addition, 1 deletioncompiler/coreSyn/CoreLint.lhs
- compiler/deSugar/DsMeta.hs 76 additions, 41 deletionscompiler/deSugar/DsMeta.hs
- compiler/hsSyn/Convert.lhs 10 additions, 5 deletionscompiler/hsSyn/Convert.lhs
- compiler/hsSyn/HsDecls.lhs 33 additions, 39 deletionscompiler/hsSyn/HsDecls.lhs
- compiler/iface/BinIface.hs 14 additions, 13 deletionscompiler/iface/BinIface.hs
- compiler/iface/BuildTyCl.lhs 1 addition, 1 deletioncompiler/iface/BuildTyCl.lhs
- compiler/iface/IfaceEnv.lhs 1 addition, 1 deletioncompiler/iface/IfaceEnv.lhs
- compiler/iface/IfaceSyn.lhs 51 additions, 23 deletionscompiler/iface/IfaceSyn.lhs
- compiler/iface/IfaceType.lhs 1 addition, 1 deletioncompiler/iface/IfaceType.lhs
- compiler/iface/MkIface.lhs 29 additions, 16 deletionscompiler/iface/MkIface.lhs
- compiler/iface/TcIface.lhs 27 additions, 17 deletionscompiler/iface/TcIface.lhs
- compiler/iface/TcIface.lhs-boot 2 additions, 2 deletionscompiler/iface/TcIface.lhs-boot
- compiler/main/GHC.hs 3 additions, 3 deletionscompiler/main/GHC.hs
- compiler/main/HscMain.hs 1 addition, 1 deletioncompiler/main/HscMain.hs
- compiler/main/HscTypes.lhs 9 additions, 7 deletionscompiler/main/HscTypes.lhs
- compiler/main/InteractiveEval.hs 2 additions, 2 deletionscompiler/main/InteractiveEval.hs
- compiler/main/PprTyThing.hs 9 additions, 4 deletionscompiler/main/PprTyThing.hs
- compiler/main/TidyPgm.lhs 1 addition, 1 deletioncompiler/main/TidyPgm.lhs
- compiler/parser/Parser.y.pp 12 additions, 9 deletionscompiler/parser/Parser.y.pp
- compiler/parser/RdrHsSyn.lhs 12 additions, 20 deletionscompiler/parser/RdrHsSyn.lhs
Loading
Please register or sign in to comment