<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>stdlib/typestruct.ml</filename>
    </added>
    <added>
      <filename>stdlib/typestruct.mli</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -17,7 +17,7 @@
 include config/Makefile
 include stdlib/StdlibModules
 
-CAMLC=boot/ocamlrun boot/ocamlc -nostdlib -I boot
+CAMLC=boot/ocamlrun boot/ocamlc -g -nostdlib -I boot
 CAMLOPT=boot/ocamlrun ./ocamlopt -nostdlib -I stdlib
 COMPFLAGS=-warn-error A $(INCLUDES)
 LINKFLAGS=</diff>
      <filename>Makefile</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@
 include config/Makefile
 include stdlib/StdlibModules
 
-CAMLC=boot/ocamlrun boot/ocamlc -I boot
+CAMLC=boot/ocamlrun boot/ocamlc -g -I boot
 CAMLOPT=boot/ocamlrun ./ocamlopt -I stdlib
 COMPFLAGS=$(INCLUDES)
 LINKFLAGS=</diff>
      <filename>Makefile.nt</filename>
    </modified>
    <modified>
      <diff>@@ -102,5 +102,7 @@ stringLabels.cmo: string.cmi stringLabels.cmi
 stringLabels.cmx: string.cmx stringLabels.cmi 
 sys.cmo: sys.cmi 
 sys.cmx: sys.cmi 
+typestruct.cmo: typestruct.cmi
+typestruct.cmx: typestruct.cmi
 weak.cmo: sys.cmi obj.cmi hashtbl.cmi array.cmi weak.cmi 
 weak.cmx: sys.cmx obj.cmx hashtbl.cmx array.cmx weak.cmi </diff>
      <filename>stdlib/.depend</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@ OTHERS=array.cmo list.cmo char.cmo string.cmo sys.cmo \
   arg.cmo printexc.cmo gc.cmo \
   digest.cmo random.cmo callback.cmo \
   camlinternalOO.cmo oo.cmo camlinternalMod.cmo \
-  genlex.cmo weak.cmo \
+  genlex.cmo weak.cmo typestruct.cmo \
   lazy.cmo filename.cmo complex.cmo \
   arrayLabels.cmo listLabels.cmo stringLabels.cmo moreLabels.cmo stdLabels.cmo
 </diff>
      <filename>stdlib/Makefile</filename>
    </modified>
    <modified>
      <diff>@@ -45,4 +45,5 @@ STDLIB_MODULES=\
   string \
   stringLabels \
   sys \
+  typestruct \
   weak</diff>
      <filename>stdlib/StdlibModules</filename>
    </modified>
    <modified>
      <diff>@@ -57,3 +57,12 @@ external float_of_bits : int64 -&gt; float = &quot;caml_int64_float_of_bits&quot;
 type t = int64
 
 let compare (x: t) (y: t) = Pervasives.compare x y
+
+let modulo = rem
+
+let rec pow a n =
+  if n = zero then one
+  else if n = one then a
+  else
+    let b = pow a (shift_right n 1) in
+    mul b (if (logand n one) = zero then b else mul b a)</diff>
      <filename>stdlib/int64.ml</filename>
    </modified>
    <modified>
      <diff>@@ -177,6 +177,12 @@ val compare: t -&gt; t -&gt; int
     allows the module [Int64] to be passed as argument to the functors
     {!Set.Make} and {!Map.Make}. *)
 
+val modulo : int64 -&gt; int64 -&gt; int64
+(** Alias for [Int64.rem] *)
+
+val pow : int64 -&gt; int64 -&gt; int64
+(** [Int64.pow a n] calculates [a] raised to the power of [n] *)
+
 (**/**)
 
 (** {6 Deprecated functions} *)</diff>
      <filename>stdlib/int64.mli</filename>
    </modified>
    <modified>
      <diff>@@ -53,3 +53,12 @@ external of_string: string -&gt; nativeint = &quot;caml_nativeint_of_string&quot;
 type t = nativeint
 
 let compare (x: t) (y: t) = Pervasives.compare x y
+
+let modulo = rem
+
+let rec pow a n =
+  if n = zero then one
+  else if n = one then a
+  else
+    let b = pow a (shift_right n 1) in
+    mul b (if (logand n one) = zero then b else mul b a)</diff>
      <filename>stdlib/nativeint.ml</filename>
    </modified>
    <modified>
      <diff>@@ -172,6 +172,12 @@ val compare: t -&gt; t -&gt; int
     allows the module [Nativeint] to be passed as argument to the functors
     {!Set.Make} and {!Map.Make}. *)
 
+val modulo : nativeint -&gt; nativeint -&gt; nativeint
+(** Alias for [Nativeint.rem] *)
+
+val pow : nativeint -&gt; nativeint -&gt; nativeint
+(** [Nativeint.pow a n] calculates [a] raised to the power of [n] *)
+
 (**/**)
 
 (** {6 Deprecated functions} *)</diff>
      <filename>stdlib/nativeint.mli</filename>
    </modified>
    <modified>
      <diff>@@ -52,6 +52,11 @@ external time : unit -&gt; float = &quot;caml_sys_time&quot;
 (** Return the processor time, in seconds, used by the program
    since the beginning of execution. *)
 
+val time_f : ('a -&gt; 'b) -&gt; 'a -&gt; (float * 'b)
+(** [time_f f a] evaluates [f a] and returns what it returns 
+    with the processor time difference before and after its 
+    execution. *)
+
 external chdir : string -&gt; unit = &quot;caml_sys_chdir&quot;
 (** Change the current working directory of the process. *)
 </diff>
      <filename>stdlib/sys.mli</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>stdlib/types.ml</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>6ec672465545a457b5beff480616f18ae7a7d6e5</id>
    </parent>
  </parents>
  <author>
    <name>Eric Norige</name>
    <email>thelema314@gmail.com</email>
  </author>
  <url>http://github.com/thelema/ocaml-community/commit/f0cb7210d5d7ca36f7655a770794ed6404d8a481</url>
  <id>f0cb7210d5d7ca36f7655a770794ed6404d8a481</id>
  <committed-date>2008-02-12T13:50:15-08:00</committed-date>
  <authored-date>2008-02-12T13:50:15-08:00</authored-date>
  <message>* types.ml fixes, new code in int64, nativeint, sys</message>
  <tree>68c948691e7a75f16ba0a425c1a8138d9628ab20</tree>
  <committer>
    <name>Eric Norige</name>
    <email>thelema314@gmail.com</email>
  </committer>
</commit>
