Names for Monadic Modalities

I don’t think maybe or either are the most intuitive names for non-Haskellers. I call your either one result in my projects.

@type result(x, a) :: {:ok, a} | {:error, x} when a: term(), x: term()

By the way, Dialyzer doesn’t unify type variables so that signature is functionally no different from

@type result(x, a) :: {:ok, a} | {:error, a} when a: term()

Or the more idiomatic

@type result(x, a) :: {:ok, term()} | {:error, term()}

Exceptional calls it a TaggedStatus but doesn’t define a @type for it that I could find.

2 Likes