1Stdlib(3) OCaml library Stdlib(3)
2
3
4
6 Stdlib - The OCaml Standard library.
7
9 Module Stdlib
10
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)