packages feed

ghc-instances 0.1.0.0 → 0.1.0.1

raw patch · 1 files changed

+15/−14 lines, 1 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ghc-instances.cabal view
@@ -1,45 +1,46 @@ name:                ghc-instances-version:             0.1.0.0+version:             0.1.0.1 synopsis:            Easily import all instances contained in GHC distributed libraries description:   This package simply has a number of modules which import all the modules   from each package that is distributed with GHC.-+  .   There's also a module "Control.Instances.GHC_Packages", that imports all of the   above modules, essentially importing every module distributed with GHC.-+  .   Why would you want to do this?-+  .   Lets say I've got a data type \"D a\". And a class \"C\".-+  .   Further, lets say I can define \"C (D a)\" if "a" is of class \"C1\".   I can also \"C (D a)\" if "a" is of class \"C2\"-+  .   Lets try:-+  .   instance C1 a => C (D a) where ...-+  .   instance C2 a => C (D a) where ...-+  .   These are going to be overlapping. We can't do this.-+  .   But instead, we import "Control.Instances.GHC_Packages". And then we can use   [reify](https://hackage.haskell.org/package/template-haskell-2.12.0.0/docs/Language-Haskell-TH.html#v:reify)   from [Template Haskell](https://hackage.haskell.org/package/template-haskell-2.12.0.0)   to bring every \"C1\" and \"C2\" instance in to scope that's defined anywhere in "base"   or any GHC module.-+  .   We can then use Template Haskell to define all our instances. We can explicitly define what happens   when both \"C1\" and \"C2\" instances are defined, perhaps prefering one over the other.-+  .   As we've got the full power of Haskell in Template Haskell, we can do these manipulations.-+  .   The package [static-closure](https://hackage.haskell.org/package/static-closure)   is an example of using these instances to generate it's own instances for it's data type.-+  .   This package will need to be updated with each release of GHC but currently the   cabal file and modules should contain appropriate pre-processor directives that   this package should work from least from GHC 7.8 to GHC 8.2.+ homepage:            https://github.com/clintonmead/ghc-instances#readme license:             BSD3 license-file:        LICENSE