w końcu trafiłem na implementację Result, którą czuję się dobrze używając poza kodami efektów. neverthrow nie ma dokładnie takich API, jakich chcę, więc stworzyłem własne może skończyć się na opublikowaniu tego w npm