$ ocaml
OCaml version 4.01.0
# max_int;;
- : int = 4611686018427387903
# let a : int = max_int;;
val a : int = 4611686018427387903
Update
For what it's worth, if you're on a 32-bit system, Int32.max_int still doesn't fit into an int, even if you correct the mistake of thinking that the L (l) at the end is a 1:
# Int32.max_int;;
- : int32 = 2147483647l
# let i : int = 21474836471 (* Mistake *);;
Characters 14-25:
let i : int = 21474836471 (* Mistake *);;
^^^^^^^^^^^
Error: Integer literal exceeds the range of representable integers of type int
# let i : int = 2147483647 (* No mistake *);;
Characters 14-24:
let i : int = 2147483647 (* No mistake *);;
^^^^^^^^^^
Error: Integer literal exceeds the range of representable integers of type int
#
So I'd say the L wasn't the problem.