I see Kevin's concern, though I think that "ENSURE" functions are the sort with "allowed accidental side-effects", whereas the important thing is that certain things hold true about the return value.
I've been thinking about this for the past few days and tend to agree with you. The important thing about ENSURE- is making sure of something with the possibility that this is already the case.
Well, maybe we need to open Babylon. :) (A subproject which collects things which might be in Alexandria, but for one reason or another aren't -- too controversial, too different, not sufficiently commonplace, etc.)
That's a good idea, although Babylon rather sounds like a name for a translation library.
Leslie