External Core tools: track new syntax for newtypes
[ghc-hetmet.git] / utils / ext-core / Printer.hs
index 2649a00..0acdc5d 100644 (file)
@@ -66,16 +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
-                           Just ty -> char '=' <+> pty ty 
-                           Nothing -> empty
+ptdef (Newtype qtcon coercion tbinds tyopt) =
+  text "%newtype" <+> pqname qtcon <+> pqname coercion 
+    <+> (hsep (map ptbind tbinds)) $$ indent repclause
+       where repclause = char '=' <+> pty tyopt
 
 pcdef (Constr qdcon tbinds tys)  =
   (pqname qdcon) <+> (sep [hsep (map pattbind tbinds),sep (map paty tys)])
@@ -89,7 +83,7 @@ pqname (m,v) = pmname m <> pname v
 pmname Nothing = empty
 pmname (Just m) = panmname m <> char '.'
 
-panmname (M (pkgName, parents, name)) =
+panmname (M (P pkgName, parents, name)) =
   let parentStrs = map pname parents in
          pname pkgName <> char ':' <>
          -- This is to be sure to not print out: