Injective type families
authorJan Stolarek <jan.stolarek@p.lodz.pl>
Fri, 11 Jul 2014 11:54:45 +0000 (13:54 +0200)
committerJan Stolarek <jan.stolarek@p.lodz.pl>
Thu, 3 Sep 2015 03:55:15 +0000 (05:55 +0200)
commit374457809de343f409fbeea0a885877947a133a2
treea354d0f4ddb6c32e6c85b853071d2107f6b8398c
parentbd16e0bc6af13f1347235782935f7dcd40b260e2
Injective type families

For details see #6018, Phab:D202 and the wiki page:

https://ghc.haskell.org/trac/ghc/wiki/InjectiveTypeFamilies

This patch also wires-in Maybe data type and updates haddock submodule.

Test Plan: ./validate

Reviewers: simonpj, goldfire, austin, bgamari

Subscribers: mpickering, bgamari, alanz, thomie, goldfire, simonmar,
             carter

Differential Revision: https://phabricator.haskell.org/D202

GHC Trac Issues: #6018
127 files changed:
compiler/basicTypes/MkId.hs
compiler/basicTypes/VarSet.hs
compiler/coreSyn/MkCore.hs
compiler/deSugar/DsMeta.hs
compiler/hsSyn/Convert.hs
compiler/hsSyn/HsDecls.hs
compiler/hsSyn/HsTypes.hs
compiler/hsSyn/PlaceHolder.hs
compiler/iface/BuildTyCl.hs
compiler/iface/IfaceSyn.hs
compiler/iface/MkIface.hs
compiler/iface/TcIface.hs
compiler/main/GHC.hs
compiler/parser/ApiAnnotation.hs
compiler/parser/Parser.y
compiler/parser/RdrHsSyn.hs
compiler/prelude/PrelNames.hs
compiler/prelude/THNames.hs
compiler/prelude/TysPrim.hs
compiler/prelude/TysWiredIn.hs
compiler/rename/RnSource.hs
compiler/rename/RnTypes.hs
compiler/typecheck/FamInst.hs
compiler/typecheck/TcCanonical.hs
compiler/typecheck/TcEnv.hs
compiler/typecheck/TcEvidence.hs
compiler/typecheck/TcHsType.hs
compiler/typecheck/TcInstDcls.hs
compiler/typecheck/TcInteract.hs
compiler/typecheck/TcMType.hs
compiler/typecheck/TcRnDriver.hs
compiler/typecheck/TcRnMonad.hs
compiler/typecheck/TcSMonad.hs
compiler/typecheck/TcSplice.hs
compiler/typecheck/TcTyClsDecls.hs
compiler/typecheck/TcTypeNats.hs
compiler/typecheck/TcValidity.hs
compiler/types/CoAxiom.hs
compiler/types/Coercion.hs
compiler/types/FamInstEnv.hs
compiler/types/Kind.hs
compiler/types/OptCoercion.hs
compiler/types/TyCon.hs
compiler/types/TypeRep.hs
compiler/types/TypeRep.hs-boot
compiler/types/Unify.hs
compiler/utils/Outputable.hs
compiler/utils/UniqFM.hs
docs/users_guide/7.12.1-notes.xml
docs/users_guide/glasgow_exts.xml
libraries/template-haskell/Language/Haskell/TH.hs
libraries/template-haskell/Language/Haskell/TH/Lib.hs
libraries/template-haskell/Language/Haskell/TH/Ppr.hs
libraries/template-haskell/Language/Haskell/TH/PprLib.hs
libraries/template-haskell/Language/Haskell/TH/Syntax.hs
testsuite/tests/ghci.debugger/scripts/print019.stderr
testsuite/tests/ghci/scripts/T6018ghci.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/T6018ghci.stdout [new file with mode: 0644]
testsuite/tests/ghci/scripts/T6018ghcifail.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/T6018ghcifail.stderr [new file with mode: 0644]
testsuite/tests/ghci/scripts/T6018ghcirnfail.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/T6018ghcirnfail.stderr [new file with mode: 0644]
testsuite/tests/ghci/scripts/all.T
testsuite/tests/indexed-types/should_compile/T9085.stderr
testsuite/tests/indexed-types/should_fail/T9160.hs
testsuite/tests/overloadedlists/should_fail/overloadedlistsfail01.stderr
testsuite/tests/quotes/TH_localname.stderr
testsuite/tests/rename/should_fail/T6018rnfail.hs [new file with mode: 0644]
testsuite/tests/rename/should_fail/T6018rnfail.stderr [new file with mode: 0644]
testsuite/tests/rename/should_fail/all.T
testsuite/tests/rename/should_fail/mc14.stderr
testsuite/tests/th/ClosedFam2TH.hs
testsuite/tests/th/T10306.hs
testsuite/tests/th/T6018th.hs [new file with mode: 0644]
testsuite/tests/th/T6018th.stderr [new file with mode: 0644]
testsuite/tests/th/T8028.hs
testsuite/tests/th/T8028a.hs
testsuite/tests/th/T8884.hs
testsuite/tests/th/T8884.stderr
testsuite/tests/th/TH_RichKinds2.hs
testsuite/tests/th/TH_reifyDecl1.hs
testsuite/tests/th/all.T
testsuite/tests/typecheck/should_compile/T6018.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_compile/T6018.hs-boot [new file with mode: 0644]
testsuite/tests/typecheck/should_compile/T6018.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_compile/T6018a.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_compile/all.T
testsuite/tests/typecheck/should_compile/holes2.stderr
testsuite/tests/typecheck/should_compile/tc265.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_compile/tc265.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018Afail.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018Bfail.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018Cfail.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018Dfail.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018fail.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018fail.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed1.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed1.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed10.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed10.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed11.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed11.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed12.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed12.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed2.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed2.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed3.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed3.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed4.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed4.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed5.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed5.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed6.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed6.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed7.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed7.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed8.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed8.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed9.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6018failclosed9.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T9201.stderr
testsuite/tests/typecheck/should_fail/T9260.stderr
testsuite/tests/typecheck/should_fail/all.T
testsuite/tests/typecheck/should_fail/tcfail072.stderr
testsuite/tests/typecheck/should_fail/tcfail133.stderr
testsuite/tests/typecheck/should_fail/tcfail181.stderr
utils/haddock