Currently Insert returns Maybe a. Nothing is coded for constraint failure, which triggers retry. If retry fails we throw a generation error. This error is opaque and does not provide any information for the user. We should be returning an Either _ a, so we can either pass the resulting exception or generate useful information for the user. This could be as simple as Either Text a or Either SomeException a.