Comments
(* Simple comment *)
(* Multi-line
comment *)
Numbers
42
3.14159
42.
2.4E+2
10_452_102
0xf4
0xff_10_41
0o427
0b1100_1111_0000
Strings and characters
"Simple string."
"String with \"quotes\" in it."
'c' `c`
'\'' `\``
'\123' `\123`
'\xf4'
Full example
module Make_interval(Endpoint : Comparable) = struct
    type t = | Interval of Endpoint.t * Endpoint.t
             | Empty
    (** [create low high] creates a new interval from [low] to
        [high].  If [low > high], then the interval is empty *)
    let create ~low ~high =
      if Endpoint.compare low high > 0 then Empty
      else Interval (low,high)
    (** Returns true iff the interval is empty *)
    let is_empty = function
      | Empty -> true
      | Interval _ -> false
    (** [contains t x] returns true iff [x] is contained in the
        interval [t] *)
    let contains t x =
      match t with
      | Empty -> false
      | Interval (l,h) ->
        Endpoint.compare x l >= 0 && Endpoint.compare x h <= 0
    (** [intersect t1 t2] returns the intersection of the two input
        intervals *)
    let intersect t1 t2 =
      let min x y = if Endpoint.compare x y <= 0 then x else y in
      let max x y = if Endpoint.compare x y >= 0 then x else y in
      match t1,t2 with
      | Empty, _ | _, Empty -> Empty
      | Interval (l1,h1), Interval (l2,h2) ->
        create ~low:(max l1 l2) ~high:(min h1 h2)
  end ;;