Improve External Core syntax for newtypes
[ghc-hetmet.git] / utils / ext-core / Printer.hs
index 0cd8b09..4e42445 100644 (file)
@@ -66,14 +66,10 @@ ptdef (Data qtcon tbinds cdefs) =
   (text "%data" <+> pqname qtcon <+> (hsep (map ptbind tbinds)) <+> char '=')
   $$ indent (braces ((vcat (punctuate (char ';') (map pcdef cdefs)))))
 
-ptdef (Newtype qtcon tbinds (coercion,cTbs,k) tyopt) =
-  text "%newtype" <+> pqname qtcon <+> (hsep (map ptbind tbinds))
-    $$ indent (axiomclause $$ repclause)
-       where axiomclause = char '^' <+> parens (pqname coercion <+> 
-                                          (hsep (map ptbind cTbs)) <+>
-                                          text "::"
-                                      <+> peqkind k)
-            repclause = case tyopt of
+ptdef (Newtype qtcon coercion tbinds tyopt) =
+  text "%newtype" <+> pqname qtcon <+> pqname coercion 
+    <+> (hsep (map ptbind tbinds)) $$ indent repclause
+       where repclause = case tyopt of
                            Just ty -> char '=' <+> pty ty 
                            Nothing -> empty
 
@@ -143,6 +139,8 @@ pty (LeftCoercion t) =
     (pqname leftCoercion <+> paty t)
 pty (RightCoercion t) = 
     (pqname rightCoercion <+> paty t)
+pty (InstCoercion t1 t2) = 
+    (sep [pqname instCoercion, paty t1, paty t2])
 pty t = pbty t
 
 pappty (Tapp t1 t2) ts = pappty t1 (t2:ts)