... | ... | @@ -40,7 +40,7 @@ However, now that 7.8 is out, there is a lot there for users to play with: the r |
|
|
|
|
|
- **Pattern synonyms** - Gergő Érdi worked on an implementation of pattern synonyms for GHC, and it actually landed in the 7.8 release. While there's still more work to do, it represents a real improvement in GHC's support for abstraction. More detail on the wiki page [\[PatSyn](pattern-synonyms)\].
|
|
|
|
|
|
- **New Template Haskell**. Geoff Mainland did the heavy lifting to implement the new Template Haskell story, more or less as described in Simon's blog post [\[THBlog](template-haskell/blog-post-changes)\]. Template Haskell now has two flavours, which can inter-operate. **Typed TH** is fully typed in the style of Meta ML, but works for expressions only. **Untyped TH** is much more expressive, allowing splices in patterns, types, and declarations, as well as expressions, but is completely untyped.
|
|
|
- **New Template Haskell**. Geoff Mainland did the heavy lifting to implement the new Template Haskell story, more or less as described in Simon's blog post [\[THBlog](template-haskell/blog-post-changes)\]. Template Haskell now has two flavours, which can inter-operate. **Typed TH** is fully typed in the style of Meta ML, but works for expressions only. **Untyped TH** is much more expressive, allowing splices in patterns, types, and declarations, as well as expressions, but is completely untyped. Gergely Risko added support for creating and reifying annotations from Template Haskell. The API for this feature may change in 7.10, but not drastically, probably only will be extended. The overview of the feature with examples is detailed on the [TemplateHaskell/Annotations](template-haskell/annotations) page.
|
|
|
|
|
|
- **Closed type families** are a major extension to the type-family feature, implemented by Richard Eisenberg. A closed type family allows you to declare all the equations for a type family in one place, with top-to-bottom matching; for example
|
|
|
|
... | ... | |