src/HOLCF/Tools/cont_consts.ML
changeset 33245 65232054ffd0
parent 31023 d027411c9a38
child 35129 ed24ba6f69aa
--- a/src/HOLCF/Tools/cont_consts.ML	Tue Oct 27 22:55:27 2009 +0100
+++ b/src/HOLCF/Tools/cont_consts.ML	Tue Oct 27 22:56:14 2009 +0100
@@ -1,5 +1,4 @@
 (*  Title:      HOLCF/Tools/cont_consts.ML
-    ID:         $Id$
     Author:     Tobias Mayr, David von Oheimb, and Markus Wenzel
 
 HOLCF version of consts: handle continuous function types in mixfix
@@ -12,7 +11,7 @@
   val add_consts_i: (binding * typ * mixfix) list -> theory -> theory
 end;
 
-structure ContConsts :> CONT_CONSTS =
+structure ContConsts: CONT_CONSTS =
 struct
 
 
@@ -29,18 +28,23 @@
 |   change_arrow n (Type(_,[S,T])) = Type ("fun",[S,change_arrow (n-1) T])
 |   change_arrow _ _               = sys_error "cont_consts: change_arrow";
 
-fun trans_rules name2 name1 n mx = let
-  fun argnames _ 0 = []
-  |   argnames c n = chr c::argnames (c+1) (n-1);
-  val vnames = argnames (ord "A") n;
-  val extra_parse_rule = Syntax.ParseRule (Constant name2, Constant name1);
-  in [Syntax.ParsePrintRule (Syntax.mk_appl (Constant name2) (map Variable vnames),
-                          Library.foldl (fn (t,arg) => (Syntax.mk_appl (Constant "Rep_CFun")
-                                                [t,Variable arg]))
-                          (Constant name1,vnames))]
-     @(case mx of InfixName _ => [extra_parse_rule]
-                | InfixlName _ => [extra_parse_rule]
-                | InfixrName _ => [extra_parse_rule] | _ => []) end;
+fun trans_rules name2 name1 n mx =
+  let
+    fun argnames _ 0 = []
+    |   argnames c n = chr c::argnames (c+1) (n-1);
+    val vnames = argnames (ord "A") n;
+    val extra_parse_rule = Syntax.ParseRule (Constant name2, Constant name1);
+  in
+    [Syntax.ParsePrintRule
+      (Syntax.mk_appl (Constant name2) (map Variable vnames),
+        fold (fn arg => fn t => Syntax.mk_appl (Constant "Rep_CFun") [t, Variable arg])
+          vnames (Constant name1))] @
+    (case mx of
+      InfixName _ => [extra_parse_rule]
+    | InfixlName _ => [extra_parse_rule]
+    | InfixrName _ => [extra_parse_rule]
+    | _ => [])
+  end;
 
 
 (* transforming infix/mixfix declarations of constants with type ...->...
@@ -59,7 +63,8 @@
                (const_binding mx syn, T,       InfixrName (Binding.name_of syn, p))
   | fix_mixfix decl = decl;
 
-fun transform decl = let
+fun transform decl =
+    let
         val (c, T, mx) = fix_mixfix decl;
         val c1 = Binding.name_of c;
         val c2 = "_cont_" ^ c1;