let load filename =
with_in_file filename begin
fun ic ->
let n = String.length I.magic_number in
let buf = String.create n in
really_input ic buf 0 n;
if buf = I.magic_number then begin
(input_value ic : I.t)
end else begin
raise (Bad_marshalled_data filename)
end
end