the use case is like insertIntoDB(datastructure: SomethingComplicated)
the sql database could throw at some point but if that's the case I catch the exception and returns MyEnum.sqlError
the datastructure has to be validated, so like you say want to represent this business logic, and Either seems fine