Ok, I am finally writing non-trivial #ocaml ...

type _ Effect.t +=
| GetAccounts : (account_summary, fetch_error) result Effect.t
| GetBalance : account_id -> (account_balance, fetch_error) result Effect.t
| GetPositions : account_id -> (position list, fetch_error) result Effect.t

...

I still don't love the syntax which I know is such a stupid/surface annoyance.

ok, I really need to fix the error types.
@SusanPotter unrelated but that's a great pfp photo