X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fglasgow_exts.xml;h=a08ace929f371526fc1deb49d94a2bbd0e385c06;hb=f1779d1350e7f30c446e51f3d33355858533fe13;hp=f63c90ebdb8205bc6db399961f8f975c15e4b220;hpb=483cdff0899f01688eff0163c5f297f5bc52e00c;p=ghc-hetmet.git
diff --git a/docs/users_guide/glasgow_exts.xml b/docs/users_guide/glasgow_exts.xml
index f63c90e..a08ace9 100644
--- a/docs/users_guide/glasgow_exts.xml
+++ b/docs/users_guide/glasgow_exts.xml
@@ -1008,6 +1008,7 @@ This name is not supported by GHC.
paper
Comprehensive comprehensions: comprehensions with "order by" and "group by",
except that the syntax we use differs slightly from the paper.
+The extension is enabled with the flag .Here is an example:
employees = [ ("Simon", "MS", 80)
@@ -2353,6 +2354,16 @@ otherwise is a generalised data type (
+As with other type signatures, you can give a single signature for several data constructors.
+In this example we give a single signature for T1 and T2:
+
+ data T a where
+ T1,T2 :: a -> T a
+ T3 :: T a
+
+
+
+
The type signature of
each constructor is independent, and is implicitly universally quantified as usual.
Different constructors may have different universally-quantified type variables
@@ -2682,7 +2693,7 @@ GHC always treats the last parameter of the instance
-Deriving clause for classes Typeable and Data
+Deriving clause for extra classes (Typeable, Data, etc)
Haskell 98 allows the programmer to add "deriving( Eq, Ord )" to a data type
@@ -2692,11 +2703,11 @@ classes Eq, Ord,
Enum, Ix, Bounded, Read, and Show.
-GHC extends this list with two more classes that may be automatically derived
-(provided the flag is specified):
-Typeable, and Data. These classes are defined in the library
-modules Data.Typeable and Data.Generics respectively, and the
-appropriate class must be in scope before it can be mentioned in the deriving clause.
+GHC extends this list with several more classes that may be automatically derived:
+
+ With , you can derive instances of the classes
+Typeable, and Data, defined in the library
+modules Data.Typeable and Data.Generics respectively.
An instance of Typeable can only be derived if the
data type has seven or fewer type parameters, all of kind *.
@@ -2712,6 +2723,26 @@ In other cases, there is nothing to stop the programmer writing a Typab
class, whose kind suits that of the data type constructor, and
then writing the data type instance by hand.
+
+
+ With , you can derive instances of
+the class Functor,
+defined in GHC.Base.
+
+
+ With , you can derive instances of
+the class Foldable,
+defined in Data.Foldable.
+
+
+ With , you can derive instances of
+the class Traversable,
+defined in Data.Traversable.
+
+
+In each case the appropriate class must be in scope before it
+can be mentioned in the deriving clause.
+
@@ -5833,6 +5864,8 @@ Wiki page.
an expression; the spliced expression must
have type Q Exp
+ an type; the spliced expression must
+ have type Q Typ a list of top-level declarations; the spliced expression must have type Q [Dec]
@@ -5881,7 +5914,7 @@ Wiki page.
(Compared to the original paper, there are many differences of detail.
The syntax for a declaration splice uses "$" not "splice".
The type of the enclosed expression must be Q [Dec], not [Q Dec].
-Type splices are not implemented, and neither are pattern splices or quotations.
+Pattern splices and quotations are not implemented.)