On Tue, Dec 17, 2013 at 12:47 PM, Daniel Bünzli wrote: As for using options instead of this result type I really want to be able > to distinguish at the type level between the following two functions (see > the corresponding C documentation): > The desire to distinguish between a successful non-result vs an error is reasonable, but it's hard to know where to draw the line. Is it an error for Map.find to not find the item you asked for? Maybe. Maybe not. I would just say consider that introducing a new type has a cost. Your users have to learn one more thing and, in this case, get embroiled in yet another monad. > * What is the T in Tsdl? I don't see any T on the SDL website. > > Thin (bindings to) SDL. Ugh. I could have used Sdl but I don't like to take ownership of toplevel names > that are used in other settings. > Admirable, but if you're defining a library that binds to a C library, I think it is reasonable to take that name. We rarely have multiple OCaml libraries that bind to the same C library. In this case, the library name could be sdl or ocaml-sdl (or sdl2 or ocaml-sdl2). I usually don't like adding "ocaml-" to library names because it is silly; of course it is an ocaml library. However, when binding to a C library, it makes some sense to distinguish between the OCaml and original C libraries. Why not. Maybe I should prefer b_array which is used by Gg. > I'd have the same criticism. It is the single letter I don't like. > > > I don't like random single letters in names, which is also a problem in > your Vg and Gg project names. > > It's not random ! It's short cryptic acronyms. Vector graphics, geometry > and graphics… > I misspoke. What I meant is: I don't like short cryptic acronyms. They appear random to me because I don't know what they mean.