Changes between Version 38 and Version 39 of Status/May13


Ignore:
Timestamp:
May 2, 2013 4:51:45 PM (2 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/May13

    v38 v39  
    2222  The `Typeable` class is now kind-polymorphic, meaning we can finally drop the boilerplate `TypeableN` classes. 
    2323  The new definition of `Typeable` is as follows: 
     24{{{ 
     25class Typeable (a :: k) where typeRep :: proxy a -> TypeRep 
     26}}} 
    2427 
    25   {{{class Typeable (a :: k) where typeRep :: proxy a -> TypeRep}}} 
    26  
    27   With this change comes the ability to derive `Typeable` instances for every user datatype, and even for 
    28   type classes. This means user defined instances of `Typeable` are unnecessary. Furthermore, since ill-defined 
    29   user instances can lead to runtime errors, they are now forbidden; the only way to get `Typeable` instances 
    30   is by using the deriving mechanism. User-defined instances will be ignored, with a warning. 
     28  With this change comes the ability to derive `Typeable` instances for every user datatype, and even for type classes. This means user defined instances of `Typeable` are unnecessary. Furthermore, since ill-defined user instances can lead to runtime errors, they are now forbidden; the only way to get `Typeable` instances is by using the deriving mechanism. User-defined instances will be ignored, with a warning. 
    3129 
    3230  Migrating to this new `Typeable` is easy. Code that only derived `Typeable` instances, and did not mention 
     
    4038  * '''Type holes.''' A GHC extension called "type holes" [TYH] was added by Thijs Alkemade, under supervision of Sean Leather and with help from Simon Peyton Jones. When GHC encounters a hole in an expression, written as "`_`", it will generate an error message describing the type that is needed in place of that hole. It gives some helpful additional information, such as the origins of the type variables in the hole's type and the local bindings that can be used. Together with {{{-fdefer-type-errors}}} this should make it easier to write code step-by-step, using hints from the compiler about the unfinished parts. 
    4139 
    42   * '''Rebindable list syntax.''' A GHC extension called [wiki:OverloadedLists overloaded lists] was added by Achim Krause, George Giorgidze, and colleagues. When this is turned on, the way GHC desugars explicit lists and lists in arithmetic sequence notation is changed. Instead of directly desugaring to built-in lists, a polymorphic witness function is used, similar to the desugaring of numeric literals. This allows for a more flexible use of list notations, supporting many different list-like types. In addition, the functions used in this desugaring process are completely rebindable. 
     40  * '''Rebindable list syntax.''' A GHC extension called "overloaded lists" [OL] was added by Achim Krause, George Giorgidze, and colleagues. When this is turned on, the way GHC desugars explicit lists and lists in arithmetic sequence notation is changed. Instead of directly desugaring to built-in lists, a polymorphic witness function is used, similar to the desugaring of numeric literals. This allows for a more flexible use of list notations, supporting many different list-like types. In addition, the functions used in this desugaring process are completely rebindable. 
    4341 
    4442  * '''Type level natural numbers'''.  Iavor S. Diatchki has been working on a solver for equations involving type-level natural numbers.  This allows simplifying and reasoning about type-level terms involving 
     
    112110Thanks to Ian Lynagh for making it easy for us with integration, makefile refactoring and patience, and to David Terei for LLVM assistance. 
    113111 
     112[TYH] Type holes [http://www.haskell.org/haskellwiki/GHC/TypeHoles Type Holes] [[br]] 
     113[OL] Overloaded lists [wiki:OverloadedLists overloaded lists] 
    114114[KD] Kinds without data [http://hackage.haskell.org/trac/ghc/wiki/GhcKinds/KindsWithoutData] [[br]] 
    115 [TYH] Type holes [http://www.haskell.org/haskellwiki/GHC/TypeHoles Type Holes] [[br]] 
    116115[OTF] Overlapping type family instances [http://hackage.haskell.org/trac/ghc/wiki/NewAxioms] [[br]] 
    117116[CG] The new codegen is nearly ready to go live [http://hackage.haskell.org/trac/ghc/blog/newcg-update] [[BR]] 
    118 [PIO] The results are amazing [https://twitter.com/bos31337/status/284701554458640384]] 
    119 [[br]] 
     117[PIO] The results are amazing [https://twitter.com/bos31337/status/284701554458640384]] [[br]] 
    120118[IOS] Building for Apple iOS targets [http://hackage.haskell.org/trac/ghc/wiki/Building/CrossCompiling/iOS]