This doesn't pass the smell test. Whenever I've seen the Result or Either type, the definition looked different than what you wrote here. I doubt this composes nicely, with Folktale and fp-ts I can be certain.

100% if you want composability go with a battle tested solution! That code really just demos how simple working the Result pattern can be.