]> matita.cs.unibo.it Git - helm.git/commitdiff
1. deriving (Show) no longer used because it fails on empty types
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 4 Sep 2012 07:55:26 +0000 (07:55 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 4 Sep 2012 07:55:26 +0000 (07:55 +0000)
2. pretty-printing of types fixed: application arguments never had
   parentheses
3. Top replaced with GHC.Prim.Any

matita/components/ng_kernel/nCicExtraction.ml
matita/matita/lib/preamble.hs

index ac6848b83676b4eb1902088a11b7ce08b67ef793..2bc21ec92dbd1a8388c166e31a294d51c1461854 100644 (file)
@@ -43,8 +43,8 @@ let rec size_of_kind =
     | KSkip k -> size_of_kind k
 ;;
 
-let bracket size_of pp o =
-  if size_of o > 1 then
+let bracket ?(prec=1) size_of pp o =
+  if size_of o > prec then
     "(" ^ pp o ^ ")"
   else
     pp o
@@ -69,10 +69,10 @@ type typ =
 
 let rec size_of_type =
   function
-    | Var _ -> 1
-    | Unit -> 1
-    | Top -> 1
-    | TConst _ -> 1
+    | Var _ -> 0
+    | Unit -> 0
+    | Top -> 0
+    | TConst _ -> 0
     | Arrow _ -> 2
     | TSkip t -> size_of_type t
     | Forall _ -> 2
@@ -954,7 +954,7 @@ let rec pretty_print_type status ctxt =
   function
     | Var n -> List.nth ctxt (n-1)
     | Unit -> "()"
-    | Top -> "Top"
+    | Top -> "GHC.Prim.Any"
     | TConst ref -> pp_ref status ref
     | Arrow (t1,t2) ->
         bracket size_of_type (pretty_print_type status ctxt) t1 ^ " -> " ^
@@ -968,7 +968,11 @@ let rec pretty_print_type status ctxt =
           "forall (" ^ name ^ " :: " ^ pretty_print_kind kind ^ "). " ^ pretty_print_type status (name::ctxt) t
         else
           "forall " ^ name ^ ". " ^ pretty_print_type status (name::ctxt) t
-   | TAppl tl -> String.concat " " (List.map (pretty_print_type status ctxt) tl)
+   | TAppl tl ->
+      String.concat " "
+       (List.map
+         (fun t -> bracket ~prec:0 size_of_type
+          (pretty_print_type status ctxt) t) tl)
 
 let pretty_print_term_context status ctx1 ctx2 =
  let name_context, rev_res =
@@ -1082,7 +1086,7 @@ let rec pp_obj status (_,ref,obj_kind) =
            let namectx = namectx_of_ctx left in
             pp_ref status ref ^ " :: " ^
              pretty_print_type status namectx tys
-         ) cl) ^ "\n    deriving (Prelude.Show)"
+         ) cl) (*^ "\n    deriving (Prelude.Show)"*)
       ) il)
  (* inductive and records missing *)
 
index e196a2be3a66b632ec5a1bb1950dc87d95af817d..abc288aa4491d27edab6a2cb15f996e52df091d2 100644 (file)
@@ -5,5 +5,3 @@ module Main where
 import Unsafe.Coerce
 import Prelude (error)
 import qualified Prelude
-
-data Top