On Mon, Apr 22, 2019 at 10:30 AM Amirouche Boubekki <xxxxxx@gmail.com> wrote:
A) Predicate

As of right now the SRFI doesn't expose a predicates for the two disjoint types it expose. Should I add `store?` and `transaction?` predicates to the specification?

Yes, that's a good point.  Please do.
 
B) Exclamation marks

I am not sure about the exclamation marks I am using:
  • begin! creates a transaction, it might have side effects like allocating specific cursors or opening a new session but this will not affect user code
  • rollback! will end the transaction, the database will be unaltered
  • commit! will also end the transaction but the database will be affected. In some sens, the setter is already expressing that it will have a side effect. Again not sure the exclamation mark is required here.
I am willing to remove the exclamation mark for this three procedures. What do you think?

I don't have a strong preference here.  That these are side-effecting forms seems obvious from their names, so the exclamation points might not be necessary.  Of course, `begin!' would have to have a new name without the exclamation point since it conflicts with the standard form.

Since we're talking about punctuation, I have a slight preference that rollback be hyphenated.  That makes it more verb-ish, in my view.  But it's just a slight preference.  We already have, alas, "hashtables," which look to me like things that can be "hasht-ed."