src/HOL/Statespace/state_fun.ML
changeset 32952 aeb1e44fbc19
parent 32921 0d88ad6fcf02
child 32957 675c0c7e6a37
--- a/src/HOL/Statespace/state_fun.ML	Thu Oct 15 23:10:35 2009 +0200
+++ b/src/HOL/Statespace/state_fun.ML	Thu Oct 15 23:28:10 2009 +0200
@@ -333,7 +333,7 @@
     [] => ""
    | c::cs => String.implode (Char.toUpper c::cs ))
 
-fun mkName (Type (T,args)) = concat (map mkName args) ^ mkUpper (Long_Name.base_name T)
+fun mkName (Type (T,args)) = implode (map mkName args) ^ mkUpper (Long_Name.base_name T)
   | mkName (TFree (x,_)) = mkUpper (Long_Name.base_name x)
   | mkName (TVar ((x,_),_)) = mkUpper (Long_Name.base_name x);
 
@@ -347,7 +347,7 @@
   | gen_constr_destr comp prfx thy (T as Type ("fun",_)) =
      let val (argTs,rangeT) = strip_type T;
      in comp 
-          (Syntax.const (deco prfx (concat (map mkName argTs) ^ "Fun")))
+          (Syntax.const (deco prfx (implode (map mkName argTs) ^ "Fun")))
           (fold (fn x => fn y => x$y)
                (replicate (length argTs) (Syntax.const "StateFun.map_fun"))
                (gen_constr_destr comp prfx thy rangeT))
@@ -361,7 +361,7 @@
                      ((mk_map T $ gen_constr_destr comp prfx thy argT))
           | _ => raise (TYPE ("StateFun.gen_constr_destr",[T'],[])))
      else (* type args are not recursively embedded into val *)
-           Syntax.const (deco prfx (concat (map mkName argTs) ^ mkUpper (Long_Name.base_name T)))
+           Syntax.const (deco prfx (implode (map mkName argTs) ^ mkUpper (Long_Name.base_name T)))
   | gen_constr_destr thy _ _ T = raise (TYPE ("StateFun.gen_constr_destr",[T],[]));
                    
 val mk_constr = gen_constr_destr (fn a => fn b => Syntax.const "Fun.comp" $ a $ b) ""