monad-maybe

Installation
SKILL.md

Maybe Monad

Installation: If not already installed, add the package with pnpm add @efesto-cloud/maybe.

Use this skill to keep Maybe<T> usage simple and predictable.

Core Rules

  • Wrap optional value with Maybe.maybe(value).
  • Build explicit presence with Maybe.some(value).
  • Build explicit absence with Maybe.none().
  • Check state with isSome() / isNone().
  • Provide fallback with else(() => defaultValue).
  • Convert to Result when needed with toResult() — returns Result<T, NoneError>.
  • Pattern match with fold(onNone, onSome) when both branches need to return the same type.
  • Execute side effects with run(fn => {...}) — Some runs the function, None does nothing.
  • Serialize to plain object with toObject() — returns ISome<T> | INone.
  • Deserialize with Maybe.fromObject(obj) — reconstructs from { some: boolean, data: T | null }.
  • Combine two Maybes with Maybe.combine(m1, m2) — returns Maybe<[T1, T2]>.
Related skills
Installs
3
First Seen
14 days ago