> Where the extension character is shift+number of bytes (at least on my keyboard...) I'm a bit worried that it'll start
> looking like Perl, but time will tell.
Personally, I would go with something like:
module B1 = struct
let ( .%{ } ) = get_1byte_int
end
module B2 = struct
let ( .%{ } ) = get_2byte_int
end
module B4 = struct
let ( .%{ } ) = get_4byte_int
end
module B8 = struct
let ( .%{ } ) = get_8byte_int
end
Which gives you similar convenience:
foo.B1.%{index}
foo.B2.%{index}
foo.B4.%{index}
foo.B8.%{index}
without drifting into Perl territory.
Regards,
Leo