1Stdlib(3)                        OCaml library                       Stdlib(3)
2
3
4

NAME

6       Stdlib - The OCaml Standard library.
7

Module

9       Module   Stdlib
10

Documentation

12       Module Stdlib
13        : sig end
14
15
16       The OCaml Standard library.
17
18       This  module  is automatically opened at the beginning of each compila‐
19       tion. All components of this module can therefore be referred by  their
20       short name, without prefixing them by Stdlib .
21
22       It particular, it provides the basic operations over the built-in types
23       (numbers, booleans, byte sequences,  strings,  exceptions,  references,
24       lists, arrays, input-output channels, ...) and the modules .
25
26
27
28
29
30
31
32   Exceptions
33       val raise : exn -> 'a
34
35       Raise the given exception value
36
37
38
39       val raise_notrace : exn -> 'a
40
41       A faster version raise which does not record the backtrace.
42
43
44       Since 4.02.0
45
46
47
48       val invalid_arg : string -> 'a
49
50       Raise exception Invalid_argument with the given string.
51
52
53
54       val failwith : string -> 'a
55
56       Raise exception Failure with the given string.
57
58
59
60       exception Exit
61
62
63       The  Exit  exception is not raised by any library function.  It is pro‐
64       vided for use in your programs.
65
66
67
68       exception Match_failure of (string * int * int)
69
70
71       Exception raised when none of the cases of  a  pattern-matching  apply.
72       The  arguments are the location of the match keyword in the source code
73       (file name, line number, column number).
74
75
76
77       exception Assert_failure of (string * int * int)
78
79
80       Exception raised when an assertion fails. The arguments are  the  loca‐
81       tion  of the assert keyword in the source code (file name, line number,
82       column number).
83
84
85
86       exception Invalid_argument of string
87
88
89       Exception raised by library functions to signal that  the  given  argu‐
90       ments  do not make sense. The string gives some information to the pro‐
91       grammer. As a general rule, this exception should  not  be  caught,  it
92       denotes  a  programming  error  and  the code should be modified not to
93       trigger it.
94
95
96
97       exception Failure of string
98
99
100       Exception raised by library functions to signal that they are undefined
101       on the given arguments. The string is meant to give some information to
102       the programmer; you must  not  pattern  match  on  the  string  literal
103       because it may change in future versions (use Failure _ instead).
104
105
106
107       exception Not_found
108
109
110       Exception  raised by search functions when the desired object could not
111       be found.
112
113
114
115       exception Out_of_memory
116
117
118       Exception raised by the garbage collector when  there  is  insufficient
119       memory  to  complete  the computation. (Not reliable for allocations on
120       the minor heap.)
121
122
123
124       exception Stack_overflow
125
126
127       Exception raised by the bytecode interpreter when the evaluation  stack
128       reaches  its maximal size. This often indicates infinite or excessively
129       deep recursion in the user's program.
130
131       Before 4.10, it was not fully implemented by the native-code compiler.
132
133
134
135       exception Sys_error of string
136
137
138       Exception raised by the input/output functions to report  an  operating
139       system  error. The string is meant to give some information to the pro‐
140       grammer; you must not pattern match on the string  literal  because  it
141       may change in future versions (use Sys_error _ instead).
142
143
144
145       exception End_of_file
146
147
148       Exception  raised by input functions to signal that the end of file has
149       been reached.
150
151
152
153       exception Division_by_zero
154
155
156       Exception raised by integer  division  and  remainder  operations  when
157       their second argument is zero.
158
159
160
161       exception Sys_blocked_io
162
163
164       A  special  case  of  Sys_error  raised  when  no  I/O is possible on a
165       non-blocking I/O channel.
166
167
168
169       exception Undefined_recursive_module of (string * int * int)
170
171
172       Exception raised when an ill-founded  recursive  module  definition  is
173       evaluated.  The  arguments  are  the  location of the definition in the
174       source code (file name, line number, column number).
175
176
177
178
179   Comparisons
180       val (=) : 'a -> 'a -> bool
181
182
183       e1 = e2 tests for structural equality of e1 and e2  .   Mutable  struc‐
184       tures  (e.g. references and arrays) are equal if and only if their cur‐
185       rent contents are structurally equal, even if the two  mutable  objects
186       are  not  the same physical object.  Equality between functional values
187       raises Invalid_argument .  Equality between cyclic data structures  may
188       not terminate.  Left-associative operator, see Ocaml_operators for more
189       information.
190
191
192
193       val (<>) : 'a -> 'a -> bool
194
195       Negation of (=) .  Left-associative operator, see  Ocaml_operators  for
196       more information.
197
198
199
200       val (<) : 'a -> 'a -> bool
201
202       See  (>=)  .   Left-associative  operator, see Ocaml_operators for more
203       information.
204
205
206
207       val (>) : 'a -> 'a -> bool
208
209       See (>=) .  Left-associative operator,  see  Ocaml_operators  for  more
210       information.
211
212
213
214       val (<=) : 'a -> 'a -> bool
215
216       See  (>=)  .   Left-associative operator,  see Ocaml_operators for more
217       information.
218
219
220
221       val (>=) : 'a -> 'a -> bool
222
223       Structural ordering functions. These functions coincide with the  usual
224       orderings over integers, characters, strings, byte sequences and float‐
225       ing-point numbers, and extend them to a total ordering over all  types.
226       The ordering is compatible with ( = ) . As in the case of ( = ) , muta‐
227       ble structures are compared by contents.  Comparison between functional
228       values  raises Invalid_argument .  Comparison between cyclic structures
229       may not terminate.  Left-associative operator, see Ocaml_operators  for
230       more information.
231
232
233
234       val compare : 'a -> 'a -> int
235
236
237       compare  x  y returns 0 if x is equal to y , a negative integer if x is
238       less than y , and a positive integer if x is  greater  than  y  .   The
239       ordering implemented by compare is compatible with the comparison pred‐
240       icates = , < and > defined above,  with one difference on the treatment
241       of  the  float value nan .  Namely, the comparison predicates treat nan
242       as different from any other float value, including itself;  while  com‐
243       pare treats nan as equal to itself and less than any other float value.
244       This treatment of nan ensures that compare  defines  a  total  ordering
245       relation.
246
247
248       compare applied to functional values may raise Invalid_argument .  com‐
249       pare applied to cyclic structures may not terminate.
250
251       The compare function can be used as the comparison function required by
252       the  Set.Make  and  Map.Make  functors,  as  well  as the List.sort and
253       Array.sort functions.
254
255
256
257       val min : 'a -> 'a -> 'a
258
259       Return the smaller of the two arguments.  The result is unspecified  if
260       one of the arguments contains the float value nan .
261
262
263
264       val max : 'a -> 'a -> 'a
265
266       Return  the greater of the two arguments.  The result is unspecified if
267       one of the arguments contains the float value nan .
268
269
270
271       val (==) : 'a -> 'a -> bool
272
273
274       e1 == e2 tests for physical equality of e1 and e2 .  On  mutable  types
275       such as references, arrays, byte sequences, records with mutable fields
276       and objects with mutable instance variables, e1 == e2 is  true  if  and
277       only  if  physical modification of e1 also affects e2 .  On non-mutable
278       types, the behavior of ( == ) is implementation-dependent; however,  it
279       is  guaranteed that e1 == e2 implies compare e1 e2 = 0 .  Left-associa‐
280       tive operator,  see Ocaml_operators for more information.
281
282
283
284       val (!=) : 'a -> 'a -> bool
285
286       Negation of (==) .  Left-associative operator,  see Ocaml_operators for
287       more information.
288
289
290
291
292   Boolean operations
293       val not : bool -> bool
294
295       The boolean negation.
296
297
298
299       val (&&) : bool -> bool -> bool
300
301       The boolean 'and'. Evaluation is sequential, left-to-right: in e1 && e2
302       , e1 is evaluated first, and if it returns false , e2 is not  evaluated
303       at  all.   Right-associative  operator,   see  Ocaml_operators for more
304       information.
305
306
307
308       val (&) : bool -> bool -> bool
309
310       Deprecated.
311
312       (&&)  should  be  used  instead.    Right-associative   operator,   see
313       Ocaml_operators for more information.
314
315
316
317       val (||) : bool -> bool -> bool
318
319       The  boolean 'or'. Evaluation is sequential, left-to-right: in e1 || e2
320       , e1 is evaluated first, and if it returns true , e2 is  not  evaluated
321       at  all.   Right-associative  operator,   see  Ocaml_operators for more
322       information.
323
324
325
326       val (or) : bool -> bool -> bool
327
328       Deprecated.
329
330       (||)  should  be  used  instead.    Right-associative   operator,   see
331       Ocaml_operators for more information.
332
333
334
335
336   Debugging
337       val __LOC__ : string
338
339
340       __LOC__  returns  the  location at which this expression appears in the
341       file currently being parsed by the compiler, with  the  standard  error
342       format of OCaml: "File %S, line %d, characters %d-%d".
343
344
345       Since 4.02.0
346
347
348
349       val __FILE__ : string
350
351
352       __FILE__  returns  the  name  of the file currently being parsed by the
353       compiler.
354
355
356       Since 4.02.0
357
358
359
360       val __LINE__ : int
361
362
363       __LINE__ returns the line number at which this  expression  appears  in
364       the file currently being parsed by the compiler.
365
366
367       Since 4.02.0
368
369
370
371       val __MODULE__ : string
372
373
374       __MODULE__ returns the module name of the file being parsed by the com‐
375       piler.
376
377
378       Since 4.02.0
379
380
381
382       val __POS__ : string * int * int * int
383
384
385       __POS__ returns a tuple (file,lnum,cnum,enum) ,  corresponding  to  the
386       location  at  which this expression appears in the file currently being
387       parsed by the compiler.  file is the current filename,  lnum  the  line
388       number, cnum the character position in the line and enum the last char‐
389       acter position in the line.
390
391
392       Since 4.02.0
393
394
395
396       val __LOC_OF__ : 'a -> string * 'a
397
398
399       __LOC_OF__ expr returns a pair (loc, expr) where loc is the location of
400       expr in the file currently being parsed by the compiler, with the stan‐
401       dard error format of OCaml: "File %S, line %d, characters %d-%d".
402
403
404       Since 4.02.0
405
406
407
408       val __LINE_OF__ : 'a -> int * 'a
409
410
411       __LINE_OF__ expr returns a pair (line, expr) , where line is  the  line
412       number at which the expression expr appears in the file currently being
413       parsed by the compiler.
414
415
416       Since 4.02.0
417
418
419
420       val __POS_OF__ : 'a -> (string * int * int * int) * 'a
421
422
423       __POS_OF__ expr returns a pair  (loc,expr)  ,  where  loc  is  a  tuple
424       (file,lnum,cnum,enum)  corresponding  to  the  location  at  which  the
425       expression expr appears in the file currently being parsed by the  com‐
426       piler.   file  is  the current filename, lnum the line number, cnum the
427       character position in the line and enum the last character position  in
428       the line.
429
430
431       Since 4.02.0
432
433
434
435
436   Composition operators
437       val (|>) : 'a -> ('a -> 'b) -> 'b
438
439       Reverse-application operator: x |> f |> g is exactly equivalent to g (f
440       (x)) .  Left-associative operator, see Ocaml_operators for more  infor‐
441       mation.
442
443
444       Since 4.01
445
446
447
448       val (@@) : ('a -> 'b) -> 'a -> 'b
449
450       Application  operator: g @@ f @@ x is exactly equivalent to g (f (x)) .
451       Right-associative operator, see Ocaml_operators for more information.
452
453
454       Since 4.01
455
456
457
458
459   Integer arithmetic
460       Integers are Sys.int_size bits wide.  All operations are  taken  modulo
461       2^ Sys.int_size .  They do not fail on overflow.
462
463       val (~-) : int -> int
464
465       Unary  negation. You can also write - e instead of ~- e .  Unary opera‐
466       tor, see Ocaml_operators for more information.
467
468
469
470       val (~+) : int -> int
471
472       Unary addition. You can also write + e instead of ~+ e .  Unary  opera‐
473       tor, see Ocaml_operators for more information.
474
475
476       Since 3.12.0
477
478
479
480       val succ : int -> int
481
482
483       succ x is x + 1 .
484
485
486
487       val pred : int -> int
488
489
490       pred x is x - 1 .
491
492
493
494       val (+) : int -> int -> int
495
496       Integer  addition.   Left-associative operator, see Ocaml_operators for
497       more information.
498
499
500
501       val (-) : int -> int -> int
502
503       Integer subtraction.  Left-associative operator, , see  Ocaml_operators
504       for more information.
505
506
507
508       val ( * ) : int -> int -> int
509
510       Integer multiplication.  Left-associative operator, see Ocaml_operators
511       for more information.
512
513
514
515       val (/) : int -> int -> int
516
517       Integer division.  Raise Division_by_zero if the second argument is  0.
518       Integer  division  rounds  the  real  quotient of its arguments towards
519       zero.  More precisely, if x >= 0 and y > 0 , x  /  y  is  the  greatest
520       integer  less than or equal to the real quotient of x by y .  Moreover,
521       (- x) / y = x / (- y) = - (x / y)  .   Left-associative  operator,  see
522       Ocaml_operators for more information.
523
524
525
526       val (mod) : int -> int -> int
527
528       Integer  remainder.   If y is not zero, the result of x mod y satisfies
529       the following properties: x = (x / y) * y + x mod y and abs(x mod y) <=
530       abs(y) - 1 .  If y = 0 , x mod y raises Division_by_zero .  Note that x
531       mod y is negative only if x < 0 .  Raise Division_by_zero if y is zero.
532       Left-associative operator, see Ocaml_operators for more information.
533
534
535
536       val abs : int -> int
537
538       Return the absolute value of the argument.  Note that this may be nega‐
539       tive if the argument is min_int .
540
541
542
543       val max_int : int
544
545       The greatest representable integer.
546
547
548
549       val min_int : int
550
551       The smallest representable integer.
552
553
554
555
556   Bitwise operations
557       val (land) : int -> int -> int
558
559       Bitwise logical and.  Left-associative  operator,  see  Ocaml_operators
560       for more information.
561
562
563
564       val (lor) : int -> int -> int
565
566       Bitwise logical or.  Left-associative operator, see Ocaml_operators for
567       more information.
568
569
570
571       val (lxor) : int -> int -> int
572
573       Bitwise  logical  exclusive   or.    Left-associative   operator,   see
574       Ocaml_operators for more information.
575
576
577
578       val lnot : int -> int
579
580       Bitwise logical negation.
581
582
583
584       val (lsl) : int -> int -> int
585
586
587       n lsl m shifts n to the left by m bits.  The result is unspecified if m
588       < 0 or m > Sys.int_size .  Right-associative operator, see Ocaml_opera‐
589       tors for more information.
590
591
592
593       val (lsr) : int -> int -> int
594
595
596       n  lsr  m  shifts  n  to the right by m bits.  This is a logical shift:
597       zeroes are inserted regardless of the  sign  of  n  .   The  result  is
598       unspecified if m < 0 or m > Sys.int_size .  Right-associative operator,
599       see Ocaml_operators for more information.
600
601
602
603       val (asr) : int -> int -> int
604
605
606       n asr m shifts n to the right by m bits.  This is an arithmetic  shift:
607       the sign bit of n is replicated.  The result is unspecified if m < 0 or
608       m > Sys.int_size .  Right-associative operator, see Ocaml_operators for
609       more information.
610
611
612
613
614   Floating-point arithmetic
615       OCaml's floating-point numbers follow the IEEE 754 standard, using dou‐
616       ble precision (64 bits) numbers.  Floating-point operations never raise
617       an  exception  on overflow, underflow, division by zero, etc.  Instead,
618       special IEEE numbers are returned as appropriate, such as infinity  for
619       1.0  /.  0.0  , neg_infinity for -1.0 /. 0.0 , and nan ('not a number')
620       for 0.0 /. 0.0 .  These special numbers then propagate  through  float‐
621       ing-point  computations  as  expected: for instance, 1.0 /. infinity is
622       0.0 , and any arithmetic operation with nan as argument returns nan  as
623       result.
624
625       val (~-.)  : float -> float
626
627       Unary negation. You can also write -. e instead of ~-. e .  Unary oper‐
628       ator, see Ocaml_operators for more information.
629
630
631
632       val (~+.)  : float -> float
633
634       Unary addition. You can also write +. e instead of ~+. e .  Unary oper‐
635       ator, see Ocaml_operators for more information.
636
637
638       Since 3.12.0
639
640
641
642       val (+.)  : float -> float -> float
643
644       Floating-point  addition.   Left-associative operator, see Ocaml_opera‐
645       tors for more information.
646
647
648
649       val (-.)  : float -> float -> float
650
651       Floating-point subtraction.  Left-associative operator, see Ocaml_oper‐
652       ators for more information.
653
654
655
656       val ( *. ) : float -> float -> float
657
658       Floating-point    multiplication.    Left-associative   operator,   see
659       Ocaml_operators for more information.
660
661
662
663       val (/.)  : float -> float -> float
664
665       Floating-point division.  Left-associative operator,  see  Ocaml_opera‐
666       tors for more information.
667
668
669
670       val ( ** ) : float -> float -> float
671
672       Exponentiation.   Right-associative  operator,  see Ocaml_operators for
673       more information.
674
675
676
677       val sqrt : float -> float
678
679       Square root.
680
681
682
683       val exp : float -> float
684
685       Exponential.
686
687
688
689       val log : float -> float
690
691       Natural logarithm.
692
693
694
695       val log10 : float -> float
696
697       Base 10 logarithm.
698
699
700
701       val expm1 : float -> float
702
703
704       expm1 x computes exp x -. 1.0  ,  giving  numerically-accurate  results
705       even if x is close to 0.0 .
706
707
708       Since 3.12.0
709
710
711
712       val log1p : float -> float
713
714
715       log1p  x  computes  log(1.0  +.  x) (natural logarithm), giving numeri‐
716       cally-accurate results even if x is close to 0.0 .
717
718
719       Since 3.12.0
720
721
722
723       val cos : float -> float
724
725       Cosine.  Argument is in radians.
726
727
728
729       val sin : float -> float
730
731       Sine.  Argument is in radians.
732
733
734
735       val tan : float -> float
736
737       Tangent.  Argument is in radians.
738
739
740
741       val acos : float -> float
742
743       Arc cosine.  The argument must fall within  the  range  [-1.0,  1.0]  .
744       Result is in radians and is between 0.0 and pi .
745
746
747
748       val asin : float -> float
749
750       Arc  sine.   The  argument  must  fall  within  the range [-1.0, 1.0] .
751       Result is in radians and is between -pi/2 and pi/2 .
752
753
754
755       val atan : float -> float
756
757       Arc tangent.  Result is in radians and is between -pi/2 and pi/2 .
758
759
760
761       val atan2 : float -> float -> float
762
763
764       atan2 y x returns the arc tangent of y /. x .  The signs of x and y are
765       used to determine the quadrant of the result.  Result is in radians and
766       is between -pi and pi .
767
768
769
770       val hypot : float -> float -> float
771
772
773       hypot x y returns sqrt(x *. x + y *. y) , that is, the  length  of  the
774       hypotenuse  of  a  right-angled triangle with sides of length x and y ,
775       or, equivalently, the distance of the point (x,y) to origin.  If one of
776       x or y is infinite, returns infinity even if the other is nan .
777
778
779       Since 4.00.0
780
781
782
783       val cosh : float -> float
784
785       Hyperbolic cosine.  Argument is in radians.
786
787
788
789       val sinh : float -> float
790
791       Hyperbolic sine.  Argument is in radians.
792
793
794
795       val tanh : float -> float
796
797       Hyperbolic tangent.  Argument is in radians.
798
799
800
801       val ceil : float -> float
802
803       Round  above  to  an  integer  value.  ceil f returns the least integer
804       value greater than or equal to f .  The result is returned as a float.
805
806
807
808       val floor : float -> float
809
810       Round below to an integer value.  floor f returns the greatest  integer
811       value less than or equal to f .  The result is returned as a float.
812
813
814
815       val abs_float : float -> float
816
817
818       abs_float f returns the absolute value of f .
819
820
821
822       val copysign : float -> float -> float
823
824
825       copysign  x  y  returns  a  float whose absolute value is that of x and
826       whose sign is that of y .  If x is nan , returns nan .  If y is  nan  ,
827       returns either x or -. x , but it is not specified which.
828
829
830       Since 4.00.0
831
832
833
834       val mod_float : float -> float -> float
835
836
837       mod_float  a  b  returns  the  remainder  of a with respect to b .  The
838       returned value is a -. n *. b , where n is the quotient a /. b  rounded
839       towards zero to an integer.
840
841
842
843       val frexp : float -> float * int
844
845
846       frexp  f  returns  the  pair of the significant and the exponent of f .
847       When f is zero, the significant x and the exponent n of f are equal  to
848       zero.   When f is non-zero, they are defined by f = x *. 2 ** n and 0.5
849       <= x < 1.0 .
850
851
852
853       val ldexp : float -> int -> float
854
855
856       ldexp x n returns x *. 2 ** n .
857
858
859
860       val modf : float -> float * float
861
862
863       modf f returns the pair of the fractional and integral part of f .
864
865
866
867       val float : int -> float
868
869       Same as float_of_int .
870
871
872
873       val float_of_int : int -> float
874
875       Convert an integer to floating-point.
876
877
878
879       val truncate : float -> int
880
881       Same as int_of_float .
882
883
884
885       val int_of_float : float -> int
886
887       Truncate the given floating-point number to an integer.  The result  is
888       unspecified if the argument is nan or falls outside the range of repre‐
889       sentable integers.
890
891
892
893       val infinity : float
894
895       Positive infinity.
896
897
898
899       val neg_infinity : float
900
901       Negative infinity.
902
903
904
905       val nan : float
906
907       A special floating-point value denoting  the  result  of  an  undefined
908       operation  such as 0.0 /. 0.0 .  Stands for 'not a number'.  Any float‐
909       ing-point operation with nan as argument returns nan as result.  As for
910       floating-point  comparisons,  = , < , <= , > and >= return false and <>
911       returns true if one or both of their arguments is nan .
912
913
914
915       val max_float : float
916
917       The largest positive finite value of type float .
918
919
920
921       val min_float : float
922
923       The smallest positive, non-zero, non-denormalized value of type float .
924
925
926
927       val epsilon_float : float
928
929       The difference between  1.0  and  the  smallest  exactly  representable
930       floating-point number greater than 1.0 .
931
932
933       type fpclass =
934        | FP_normal  (* Normal number, none of the below
935        *)
936        | FP_subnormal  (* Number very close to 0.0, has reduced precision
937        *)
938        | FP_zero  (* Number is 0.0 or -0.0
939        *)
940        | FP_infinite  (* Number is positive or negative infinity
941        *)
942        | FP_nan  (* Not a number: result of an undefined operation
943        *)
944
945
946       The  five classes of floating-point numbers, as determined by the clas‐
947       sify_float function.
948
949
950
951       val classify_float : float -> fpclass
952
953       Return the class of the given floating-point number: normal, subnormal,
954       zero, infinite, or not a number.
955
956
957
958
959   String operations
960       More string operations are provided in module String .
961
962       val (^) : string -> string -> string
963
964       String  concatenation.  Right-associative operator, see Ocaml_operators
965       for more information.
966
967
968
969
970   Character operations
971       More character operations are provided in module Char .
972
973       val int_of_char : char -> int
974
975       Return the ASCII code of the argument.
976
977
978
979       val char_of_int : int -> char
980
981       Return the character with the given ASCII code.  Raise Invalid_argument
982       "char_of_int" if the argument is outside the range 0--255.
983
984
985
986
987   Unit operations
988       val ignore : 'a -> unit
989
990       Discard  the  value  of  its  argument  and  return () .  For instance,
991       ignore(f x) discards the result of the side-effecting function f .   It
992       is  equivalent  to f x; () , except that the latter may generate a com‐
993       piler warning; writing ignore(f x) instead avoids the warning.
994
995
996
997
998   String conversion functions
999       val string_of_bool : bool -> string
1000
1001       Return the string representation of a boolean. As the  returned  values
1002       may be shared, the user should not modify them directly.
1003
1004
1005
1006       val bool_of_string_opt : string -> bool option
1007
1008       Convert the given string to a boolean.
1009
1010       Return None if the string is not "true" or "false" .
1011
1012
1013       Since 4.05
1014
1015
1016
1017       val bool_of_string : string -> bool
1018
1019       Same    as    bool_of_string_opt    ,    but   raise   Invalid_argument
1020       "bool_of_string" instead of returning None .
1021
1022
1023
1024       val string_of_int : int -> string
1025
1026       Return the string representation of an integer, in decimal.
1027
1028
1029
1030       val int_of_string_opt : string -> int option
1031
1032       Convert the given string to an integer.  The string is read in  decimal
1033       (by  default,  or if the string begins with 0u ), in hexadecimal (if it
1034       begins with 0x or 0X ), in octal (if it begins with 0o or 0O ),  or  in
1035       binary (if it begins with 0b or 0B ).
1036
1037       The  0u  prefix reads the input as an unsigned integer in the range [0,
1038       2*max_int+1] .  If the input exceeds max_int it  is  converted  to  the
1039       signed integer min_int + input - max_int - 1 .
1040
1041       The  _  (underscore) character can appear anywhere in the string and is
1042       ignored.
1043
1044       Return None if the given string is not a  valid  representation  of  an
1045       integer,  or  if  the integer represented exceeds the range of integers
1046       representable in type int .
1047
1048
1049       Since 4.05
1050
1051
1052
1053       val int_of_string : string -> int
1054
1055       Same as int_of_string_opt , but raise Failure  "int_of_string"  instead
1056       of returning None .
1057
1058
1059
1060       val string_of_float : float -> string
1061
1062       Return the string representation of a floating-point number.
1063
1064
1065
1066       val float_of_string_opt : string -> float option
1067
1068       Convert the given string to a float.  The string is read in decimal (by
1069       default) or in hexadecimal (marked by 0x or 0X ).
1070
1071       The format of decimal floating-point numbers is [-] dd.ddd (e|E)  [+|-]
1072       dd , where d stands for a decimal digit.
1073
1074       The  format  of hexadecimal floating-point numbers is [-] 0(x|X) hh.hhh
1075       (p|P) [+|-] dd , where h stands for an hexadecimal digit and  d  for  a
1076       decimal digit.
1077
1078       In both cases, at least one of the integer and fractional parts must be
1079       given; the exponent part is optional.
1080
1081       The _ (underscore) character can appear anywhere in the string  and  is
1082       ignored.
1083
1084       Depending  on  the execution platforms, other representations of float‐
1085       ing-point numbers can be accepted, but should not be relied upon.
1086
1087       Return None if the given string is not  a  valid  representation  of  a
1088       float.
1089
1090
1091       Since 4.05
1092
1093
1094
1095       val float_of_string : string -> float
1096
1097       Same  as  float_of_string_opt  ,  but  raise  Failure "float_of_string"
1098       instead of returning None .
1099
1100
1101
1102
1103   Pair operations
1104       val fst : 'a * 'b -> 'a
1105
1106       Return the first component of a pair.
1107
1108
1109
1110       val snd : 'a * 'b -> 'b
1111
1112       Return the second component of a pair.
1113
1114
1115
1116
1117   List operations
1118       More list operations are provided in module List .
1119
1120       val (@) : 'a list -> 'a list -> 'a list
1121
1122       List concatenation.  Not tail-recursive (length of the first argument).
1123       Right-associative operator, see Ocaml_operators for more information.
1124
1125
1126
1127
1128   Input/output
1129       Note:  all  input/output  functions can raise Sys_error when the system
1130       calls they invoke fail.
1131
1132       type in_channel
1133
1134
1135       The type of input channel.
1136
1137
1138       type out_channel
1139
1140
1141       The type of output channel.
1142
1143
1144
1145       val stdin : in_channel
1146
1147       The standard input for the process.
1148
1149
1150
1151       val stdout : out_channel
1152
1153       The standard output for the process.
1154
1155
1156
1157       val stderr : out_channel
1158
1159       The standard error output for the process.
1160
1161
1162
1163
1164   Output functions on standard output
1165       val print_char : char -> unit
1166
1167       Print a character on standard output.
1168
1169
1170
1171       val print_string : string -> unit
1172
1173       Print a string on standard output.
1174
1175
1176
1177       val print_bytes : bytes -> unit
1178
1179       Print a byte sequence on standard output.
1180
1181
1182       Since 4.02.0
1183
1184
1185
1186       val print_int : int -> unit
1187
1188       Print an integer, in decimal, on standard output.
1189
1190
1191
1192       val print_float : float -> unit
1193
1194       Print a floating-point number, in decimal, on standard output.
1195
1196
1197
1198       val print_endline : string -> unit
1199
1200       Print a string, followed by a newline character, on standard output and
1201       flush standard output.
1202
1203
1204
1205       val print_newline : unit -> unit
1206
1207       Print  a  newline character on standard output, and flush standard out‐
1208       put. This can be used to simulate line buffering of standard output.
1209
1210
1211
1212
1213   Output functions on standard error
1214       val prerr_char : char -> unit
1215
1216       Print a character on standard error.
1217
1218
1219
1220       val prerr_string : string -> unit
1221
1222       Print a string on standard error.
1223
1224
1225
1226       val prerr_bytes : bytes -> unit
1227
1228       Print a byte sequence on standard error.
1229
1230
1231       Since 4.02.0
1232
1233
1234
1235       val prerr_int : int -> unit
1236
1237       Print an integer, in decimal, on standard error.
1238
1239
1240
1241       val prerr_float : float -> unit
1242
1243       Print a floating-point number, in decimal, on standard error.
1244
1245
1246
1247       val prerr_endline : string -> unit
1248
1249       Print a string, followed by a newline character on standard  error  and
1250       flush standard error.
1251
1252
1253
1254       val prerr_newline : unit -> unit
1255
1256       Print a newline character on standard error, and flush standard error.
1257
1258
1259
1260
1261   Input functions on standard input
1262       val read_line : unit -> string
1263
1264       Flush standard output, then read characters from standard input until a
1265       newline character is encountered. Return the string of  all  characters
1266       read, without the newline character at the end.
1267
1268
1269
1270       val read_int_opt : unit -> int option
1271
1272       Flush  standard output, then read one line from standard input and con‐
1273       vert it to an integer.
1274
1275       Return None if the line read is not a valid representation of an  inte‐
1276       ger.
1277
1278
1279       Since 4.05
1280
1281
1282
1283       val read_int : unit -> int
1284
1285       Same  as  read_int_opt  ,  but raise Failure "int_of_string" instead of
1286       returning None .
1287
1288
1289
1290       val read_float_opt : unit -> float option
1291
1292       Flush standard output, then read one line from standard input and  con‐
1293       vert it to a floating-point number.
1294
1295       Return  None if the line read is not a valid representation of a float‐
1296       ing-point number.
1297
1298
1299       Since 4.05.0
1300
1301
1302
1303       val read_float : unit -> float
1304
1305       Same as read_float_opt , but raise Failure "float_of_string" instead of
1306       returning None .
1307
1308
1309
1310
1311   General output functions
1312       type open_flag =
1313        | Open_rdonly  (* open for reading.
1314        *)
1315        | Open_wronly  (* open for writing.
1316        *)
1317        | Open_append  (* open for appending: always write at end of file.
1318        *)
1319        | Open_creat  (* create the file if it does not exist.
1320        *)
1321        | Open_trunc  (* empty the file if it already exists.
1322        *)
1323        | Open_excl  (* fail if Open_creat and the file already exists.
1324        *)
1325        | Open_binary  (* open in binary mode (no conversion).
1326        *)
1327        | Open_text  (* open in text mode (may perform conversions).
1328        *)
1329        | Open_nonblock  (* open in non-blocking mode.
1330        *)
1331
1332
1333       Opening modes for open_out_gen and open_in_gen .
1334
1335
1336
1337       val open_out : string -> out_channel
1338
1339       Open  the  named  file  for writing, and return a new output channel on
1340       that file, positioned at the beginning of the file. The file  is  trun‐
1341       cated to zero length if it already exists. It is created if it does not
1342       already exists.
1343
1344
1345
1346       val open_out_bin : string -> out_channel
1347
1348       Same as open_out , but the file is opened in binary mode,  so  that  no
1349       translation takes place during writes. On operating systems that do not
1350       distinguish between text mode and binary mode,  this  function  behaves
1351       like open_out .
1352
1353
1354
1355       val open_out_gen : open_flag list -> int -> string -> out_channel
1356
1357
1358       open_out_gen  mode  perm  filename opens the named file for writing, as
1359       described above. The extra argument mode specifies  the  opening  mode.
1360       The  extra  argument  perm  specifies the file permissions, in case the
1361       file must be created.  open_out and open_out_bin are special  cases  of
1362       this function.
1363
1364
1365
1366       val flush : out_channel -> unit
1367
1368       Flush  the  buffer associated with the given output channel, performing
1369       all pending writes on that channel.  Interactive programs must be care‐
1370       ful  about  flushing  standard  output  and standard error at the right
1371       time.
1372
1373
1374
1375       val flush_all : unit -> unit
1376
1377       Flush all open output channels; ignore errors.
1378
1379
1380
1381       val output_char : out_channel -> char -> unit
1382
1383       Write the character on the given output channel.
1384
1385
1386
1387       val output_string : out_channel -> string -> unit
1388
1389       Write the string on the given output channel.
1390
1391
1392
1393       val output_bytes : out_channel -> bytes -> unit
1394
1395       Write the byte sequence on the given output channel.
1396
1397
1398       Since 4.02.0
1399
1400
1401
1402       val output : out_channel -> bytes -> int -> int -> unit
1403
1404
1405       output oc buf pos len writes len characters from byte  sequence  buf  ,
1406       starting  at  offset  pos  ,  to  the  given output channel oc .  Raise
1407       Invalid_argument "output" if pos and len do not designate a valid range
1408       of buf .
1409
1410
1411
1412       val output_substring : out_channel -> string -> int -> int -> unit
1413
1414       Same  as  output  but  take  a  string  as  argument  instead of a byte
1415       sequence.
1416
1417
1418       Since 4.02.0
1419
1420
1421
1422       val output_byte : out_channel -> int -> unit
1423
1424       Write one 8-bit integer (as the single character with that code) on the
1425       given output channel. The given integer is taken modulo 256.
1426
1427
1428
1429       val output_binary_int : out_channel -> int -> unit
1430
1431       Write  one  integer in binary format (4 bytes, big-endian) on the given
1432       output channel.  The given integer is  taken  modulo  2^32.   The  only
1433       reliable  way to read it back is through the input_binary_int function.
1434       The format is compatible across all machines for  a  given  version  of
1435       OCaml.
1436
1437
1438
1439       val output_value : out_channel -> 'a -> unit
1440
1441       Write  the  representation of a structured value of any type to a chan‐
1442       nel. Circularities and sharing inside the value are detected  and  pre‐
1443       served.  The object can be read back, by the function input_value . See
1444       the description of module Marshal for more  information.   output_value
1445       is equivalent to Marshal.to_channel with an empty list of flags.
1446
1447
1448
1449       val seek_out : out_channel -> int -> unit
1450
1451
1452       seek_out  chan pos sets the current writing position to pos for channel
1453       chan . This works only for regular files. On files of other kinds (such
1454       as terminals, pipes and sockets), the behavior is unspecified.
1455
1456
1457
1458       val pos_out : out_channel -> int
1459
1460       Return  the  current  writing position for the given channel.  Does not
1461       work on channels opened with the Open_append flag (returns  unspecified
1462       results).
1463
1464
1465
1466       val out_channel_length : out_channel -> int
1467
1468       Return the size (number of characters) of the regular file on which the
1469       given channel is opened.  If the channel is opened on a  file  that  is
1470       not a regular file, the result is meaningless.
1471
1472
1473
1474       val close_out : out_channel -> unit
1475
1476       Close  the given channel, flushing all buffered write operations.  Out‐
1477       put functions raise a Sys_error exception when they are  applied  to  a
1478       closed  output  channel,  except close_out and flush , which do nothing
1479       when applied to an already closed channel.   Note  that  close_out  may
1480       raise  Sys_error if the operating system signals an error when flushing
1481       or closing.
1482
1483
1484
1485       val close_out_noerr : out_channel -> unit
1486
1487       Same as close_out , but ignore all errors.
1488
1489
1490
1491       val set_binary_mode_out : out_channel -> bool -> unit
1492
1493
1494       set_binary_mode_out oc true sets the channel  oc  to  binary  mode:  no
1495       translations  take  place  during output.  set_binary_mode_out oc false
1496       sets the channel oc to text mode: depending on  the  operating  system,
1497       some  translations  may  take place during output.  For instance, under
1498       Windows, end-of-lines will be translated from \n to \r\n .  This  func‐
1499       tion  has  no  effect  under  operating systems that do not distinguish
1500       between text mode and binary mode.
1501
1502
1503
1504
1505   General input functions
1506       val open_in : string -> in_channel
1507
1508       Open the named file for reading, and return a new input channel on that
1509       file, positioned at the beginning of the file.
1510
1511
1512
1513       val open_in_bin : string -> in_channel
1514
1515       Same  as  open_in  ,  but the file is opened in binary mode, so that no
1516       translation takes place during reads. On operating systems that do  not
1517       distinguish  between  text  mode and binary mode, this function behaves
1518       like open_in .
1519
1520
1521
1522       val open_in_gen : open_flag list -> int -> string -> in_channel
1523
1524
1525       open_in_gen mode perm filename opens the named  file  for  reading,  as
1526       described  above. The extra arguments mode and perm specify the opening
1527       mode and file permissions.  open_in and open_in_bin are  special  cases
1528       of this function.
1529
1530
1531
1532       val input_char : in_channel -> char
1533
1534       Read  one character from the given input channel.  Raise End_of_file if
1535       there are no more characters to read.
1536
1537
1538
1539       val input_line : in_channel -> string
1540
1541       Read characters from the given input channel, until a newline character
1542       is  encountered.  Return the string of all characters read, without the
1543       newline character at the end.  Raise End_of_file if the end of the file
1544       is reached at the beginning of line.
1545
1546
1547
1548       val input : in_channel -> bytes -> int -> int -> int
1549
1550
1551       input  ic buf pos len reads up to len characters from the given channel
1552       ic , storing them in byte sequence buf , starting at  character  number
1553       pos  .   It returns the actual number of characters read, between 0 and
1554       len (inclusive).  A return value of 0 means that the end  of  file  was
1555       reached.  A return value between 0 and len exclusive means that not all
1556       requested len characters were read, either because no  more  characters
1557       were  available  at  that  time, or because the implementation found it
1558       convenient to do a partial read; input must be called again to read the
1559       remaining  characters,  if desired.  (See also really_input for reading
1560       exactly len characters.)  Exception Invalid_argument "input" is  raised
1561       if pos and len do not designate a valid range of buf .
1562
1563
1564
1565       val really_input : in_channel -> bytes -> int -> int -> unit
1566
1567
1568       really_input  ic  buf  pos  len  reads len characters from channel ic ,
1569       storing them in byte sequence buf , starting at character number pos  .
1570       Raise  End_of_file  if the end of file is reached before len characters
1571       have been read.  Raise Invalid_argument "really_input" if pos  and  len
1572       do not designate a valid range of buf .
1573
1574
1575
1576       val really_input_string : in_channel -> int -> string
1577
1578
1579       really_input_string  ic  len  reads  len characters from channel ic and
1580       returns them in a new string.  Raise End_of_file if the end of file  is
1581       reached before len characters have been read.
1582
1583
1584       Since 4.02.0
1585
1586
1587
1588       val input_byte : in_channel -> int
1589
1590       Same  as  input_char  ,  but  return the 8-bit integer representing the
1591       character.  Raise End_of_file if an end of file was reached.
1592
1593
1594
1595       val input_binary_int : in_channel -> int
1596
1597       Read an integer encoded in binary format (4 bytes, big-endian) from the
1598       given  input  channel. See output_binary_int .  Raise End_of_file if an
1599       end of file was reached while reading the integer.
1600
1601
1602
1603       val input_value : in_channel -> 'a
1604
1605       Read the representation of a structured  value,  as  produced  by  out‐
1606       put_value , and return the corresponding value.  This function is iden‐
1607       tical to Marshal.from_channel ; see the description of  module  Marshal
1608       for more information, in particular concerning the lack of type safety.
1609
1610
1611
1612       val seek_in : in_channel -> int -> unit
1613
1614
1615       seek_in  chan  pos sets the current reading position to pos for channel
1616       chan . This works only for regular files. On files of other kinds,  the
1617       behavior is unspecified.
1618
1619
1620
1621       val pos_in : in_channel -> int
1622
1623       Return the current reading position for the given channel.
1624
1625
1626
1627       val in_channel_length : in_channel -> int
1628
1629       Return the size (number of characters) of the regular file on which the
1630       given channel is opened.  If the channel is opened on a  file  that  is
1631       not  a regular file, the result is meaningless.  The returned size does
1632       not take into account the end-of-line translations  that  can  be  per‐
1633       formed when reading from a channel opened in text mode.
1634
1635
1636
1637       val close_in : in_channel -> unit
1638
1639       Close  the  given channel.  Input functions raise a Sys_error exception
1640       when they are applied to a closed  input  channel,  except  close_in  ,
1641       which does nothing when applied to an already closed channel.
1642
1643
1644
1645       val close_in_noerr : in_channel -> unit
1646
1647       Same as close_in , but ignore all errors.
1648
1649
1650
1651       val set_binary_mode_in : in_channel -> bool -> unit
1652
1653
1654       set_binary_mode_in  ic  true  sets  the  channel  ic to binary mode: no
1655       translations take place during  input.   set_binary_mode_out  ic  false
1656       sets  the  channel  ic to text mode: depending on the operating system,
1657       some translations may take place during  input.   For  instance,  under
1658       Windows,  end-of-lines will be translated from \r\n to \n .  This func‐
1659       tion has no effect under operating  systems  that  do  not  distinguish
1660       between text mode and binary mode.
1661
1662
1663
1664
1665   Operations on large files
1666       module LargeFile : sig end
1667
1668
1669       Operations on large files.  This sub-module provides 64-bit variants of
1670       the channel functions that manipulate file positions  and  file  sizes.
1671       By  representing  positions  and sizes by 64-bit integers (type int64 )
1672       instead of regular integers (type  int  ),  these  alternate  functions
1673       allow operating on files whose sizes are greater than max_int .
1674
1675
1676
1677
1678   References
1679       type 'a ref = {
1680
1681       mutable contents : 'a ;
1682        }
1683
1684
1685       The  type  of references (mutable indirection cells) containing a value
1686       of type 'a .
1687
1688
1689
1690       val ref : 'a -> 'a ref
1691
1692       Return a fresh reference containing the given value.
1693
1694
1695
1696       val (!)  : 'a ref -> 'a
1697
1698
1699       !r returns the current contents of reference r .  Equivalent to  fun  r
1700       ->  r.contents .  Unary operator, see Ocaml_operators for more informa‐
1701       tion.
1702
1703
1704
1705       val (:=) : 'a ref -> 'a -> unit
1706
1707
1708       r := a stores the value of a in reference r .  Equivalent to fun r v ->
1709       r.contents  <- v .  Right-associative operator, see Ocaml_operators for
1710       more information.
1711
1712
1713
1714       val incr : int ref -> unit
1715
1716       Increment the integer contained in the given reference.  Equivalent  to
1717       fun r -> r := succ !r .
1718
1719
1720
1721       val decr : int ref -> unit
1722
1723       Decrement  the integer contained in the given reference.  Equivalent to
1724       fun r -> r := pred !r .
1725
1726
1727
1728
1729   Result type
1730       type ('a, 'b) result =
1731        | Ok of 'a
1732        | Error of 'b
1733
1734
1735       Since 4.03.0
1736
1737
1738
1739
1740   Operations on format strings
1741       Format strings are character strings with special  lexical  conventions
1742       that  defines  the  functionality  of formatted input/output functions.
1743       Format strings are used to read data  with  formatted  input  functions
1744       from  module  Scanf  and  to print data with formatted output functions
1745       from modules Printf and Format .
1746
1747       Format strings are made of three kinds of entities:
1748
1749       -conversions specifications, introduced by the  special  character  '%'
1750       followed  by one or more characters specifying what kind of argument to
1751       read or print,
1752
1753       -formatting indications, introduced by the special character  '@'  fol‐
1754       lowed  by  one  or  more characters specifying how to read or print the
1755       argument,
1756
1757       -plain characters that are regular characters with usual  lexical  con‐
1758       ventions.  Plain  characters  specify string literals to be read in the
1759       input or printed in the output.
1760
1761       There is an additional lexical rule to escape  the  special  characters
1762       '%'  and  '@'  in  format strings: if a special character follows a '%'
1763       character, it is treated as a plain character. In other words, "%%"  is
1764       considered as a plain '%' and "%@" as a plain '@' .
1765
1766       For  more  information  about  conversion specifications and formatting
1767       indications available, read the documentation of modules Scanf , Printf
1768       and Format .
1769
1770       Format  strings have a general and highly polymorphic type ('a, 'b, 'c,
1771       'd, 'e, 'f) format6 .  The two simplified  types,  format  and  format4
1772       below  are included for backward compatibility with earlier releases of
1773       OCaml.
1774
1775       The meaning of format string type parameters is as follows:
1776
1777
1778       - 'a is the type of the parameters of the format for  formatted  output
1779       functions ( printf -style functions); 'a is the type of the values read
1780       by the format for formatted input functions ( scanf -style functions).
1781
1782
1783       - 'b is the type of input source for formatted input functions and  the
1784       type  of  output  target  for  formatted  output functions.  For printf
1785       -style functions from module Printf , 'b is typically out_channel ; for
1786       printf  -style  functions  from  module  Format  , 'b is typically For‐
1787       mat.formatter ; for scanf -style functions from module Scanf  ,  'b  is
1788       typically Scanf.Scanning.in_channel .
1789
1790       Type argument 'b is also the type of the first argument given to user's
1791       defined printing functions  for  %a  and  %t  conversions,  and  user's
1792       defined reading functions for %r conversion.
1793
1794
1795       - 'c is the type of the result of the %a and %t printing functions, and
1796       also the type of the argument transmitted  to  the  first  argument  of
1797       kprintf -style functions or to the kscanf -style functions.
1798
1799
1800       - 'd is the type of parameters for the scanf -style functions.
1801
1802
1803       -  'e  is  the type of the receiver function for the scanf -style func‐
1804       tions.
1805
1806
1807       - 'f is the final result type  of  a  formatted  input/output  function
1808       invocation: for the printf -style functions, it is typically unit ; for
1809       the scanf -style functions, it is typically  the  result  type  of  the
1810       receiver function.
1811
1812
1813       type  ('a,  'b, 'c, 'd, 'e, 'f) format6 = ('a, 'b, 'c, 'd, 'e, 'f) Cam‐
1814       linternalFormatBasics.format6
1815
1816
1817
1818
1819       type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
1820
1821
1822
1823
1824       type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
1825
1826
1827
1828
1829
1830       val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
1831
1832       Converts a format string into a string.
1833
1834
1835
1836       val format_of_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c,
1837       'd, 'e, 'f) format6
1838
1839
1840       format_of_string s returns a format string read from the string literal
1841       s .  Note: format_of_string can not convert a string argument  that  is
1842       not  a  literal.  If  you need this functionality, use the more general
1843       Scanf.format_from_string function.
1844
1845
1846
1847       val (^^) : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('f, 'b, 'c, 'e, 'g, 'h)
1848       format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
1849
1850
1851       f1  ^^  f2  catenates format strings f1 and f2 . The result is a format
1852       string that behaves as the concatenation of format strings f1 and f2  :
1853       in  case of formatted output, it accepts arguments from f1 , then argu‐
1854       ments from f2 ; in case of formatted input, it returns results from  f1
1855       ,  then results from f2 .  Right-associative operator, see Ocaml_opera‐
1856       tors for more information.
1857
1858
1859
1860
1861   Program termination
1862       val exit : int -> 'a
1863
1864       Terminate the process, returning the given status code to the operating
1865       system:  usually  0 to indicate no errors, and a small positive integer
1866       to indicate  failure.   All  open  output  channels  are  flushed  with
1867       flush_all .  An implicit exit 0 is performed each time a program termi‐
1868       nates normally.  An implicit exit 2 is performed if the program  termi‐
1869       nates early because of an uncaught exception.
1870
1871
1872
1873       val at_exit : (unit -> unit) -> unit
1874
1875       Register  the  given function to be called at program termination time.
1876       The functions registered with at_exit will be called when  the  program
1877       does any of the following:
1878
1879       -executes exit
1880
1881
1882       -terminates, either normally or because of an uncaught exception
1883
1884       -executes  the  C function caml_shutdown .  The functions are called in
1885       'last in, first out' order:  the  function  most  recently  added  with
1886       at_exit is called first.
1887
1888
1889
1890
1891
1892   Standard library modules
1893       module Arg : (module Stdlib__arg)
1894
1895
1896
1897
1898       module Array : (module Stdlib__array)
1899
1900
1901
1902
1903       module ArrayLabels : (module Stdlib__arrayLabels)
1904
1905
1906
1907
1908       module Bigarray : (module Stdlib__bigarray)
1909
1910
1911
1912
1913       module Bool : (module Stdlib__bool)
1914
1915
1916
1917
1918       module Buffer : (module Stdlib__buffer)
1919
1920
1921
1922
1923       module Bytes : (module Stdlib__bytes)
1924
1925
1926
1927
1928       module BytesLabels : (module Stdlib__bytesLabels)
1929
1930
1931
1932
1933       module Callback : (module Stdlib__callback)
1934
1935
1936
1937
1938       module Char : (module Stdlib__char)
1939
1940
1941
1942
1943       module Complex : (module Stdlib__complex)
1944
1945
1946
1947
1948       module Digest : (module Stdlib__digest)
1949
1950
1951
1952
1953       module Ephemeron : (module Stdlib__ephemeron)
1954
1955
1956
1957
1958       module Filename : (module Stdlib__filename)
1959
1960
1961
1962
1963       module Float : (module Stdlib__float)
1964
1965
1966
1967
1968       module Format : (module Stdlib__format)
1969
1970
1971
1972
1973       module Fun : (module Stdlib__fun)
1974
1975
1976
1977
1978       module Gc : (module Stdlib__gc)
1979
1980
1981
1982
1983       module Genlex : (module Stdlib__genlex)
1984
1985
1986
1987
1988       module Hashtbl : (module Stdlib__hashtbl)
1989
1990
1991
1992
1993       module Int : (module Stdlib__int)
1994
1995
1996
1997
1998       module Int32 : (module Stdlib__int32)
1999
2000
2001
2002
2003       module Int64 : (module Stdlib__int64)
2004
2005
2006
2007
2008       module Lazy : (module Stdlib__lazy)
2009
2010
2011
2012
2013       module Lexing : (module Stdlib__lexing)
2014
2015
2016
2017
2018       module List : (module Stdlib__list)
2019
2020
2021
2022
2023       module ListLabels : (module Stdlib__listLabels)
2024
2025
2026
2027
2028       module Map : (module Stdlib__map)
2029
2030
2031
2032
2033       module Marshal : (module Stdlib__marshal)
2034
2035
2036
2037
2038       module MoreLabels : (module Stdlib__moreLabels)
2039
2040
2041
2042
2043       module Nativeint : (module Stdlib__nativeint)
2044
2045
2046
2047
2048       module Obj : (module Stdlib__obj)
2049
2050
2051
2052
2053       module Oo : (module Stdlib__oo)
2054
2055
2056
2057
2058       module Option : (module Stdlib__option)
2059
2060
2061
2062
2063       module Parsing : (module Stdlib__parsing)
2064
2065
2066
2067
2068       module Pervasives : (module Stdlib__pervasives)
2069
2070
2071
2072
2073       module Printexc : (module Stdlib__printexc)
2074
2075
2076
2077
2078       module Printf : (module Stdlib__printf)
2079
2080
2081
2082
2083       module Queue : (module Stdlib__queue)
2084
2085
2086
2087
2088       module Random : (module Stdlib__random)
2089
2090
2091
2092
2093       module Result : (module Stdlib__result)
2094
2095
2096
2097
2098       module Scanf : (module Stdlib__scanf)
2099
2100
2101
2102
2103       module Seq : (module Stdlib__seq)
2104
2105
2106
2107
2108       module Set : (module Stdlib__set)
2109
2110
2111
2112
2113       module Spacetime : (module Stdlib__spacetime)
2114
2115
2116
2117
2118       module Stack : (module Stdlib__stack)
2119
2120
2121
2122
2123       module StdLabels : (module Stdlib__stdLabels)
2124
2125
2126
2127
2128       module Stream : (module Stdlib__stream)
2129
2130
2131
2132
2133       module String : (module Stdlib__string)
2134
2135
2136
2137
2138       module StringLabels : (module Stdlib__stringLabels)
2139
2140
2141
2142
2143       module Sys : (module Stdlib__sys)
2144
2145
2146
2147
2148       module Uchar : (module Stdlib__uchar)
2149
2150
2151
2152
2153       module Unit : (module Stdlib__unit)
2154
2155
2156
2157
2158       module Weak : (module Stdlib__weak)
2159
2160
2161
2162
2163
2164
2165
2166OCamldoc                          2020-02-27                         Stdlib(3)
Impressum