Skip to main content

lib/skuld/coroutine/errored.ex

defmodule Skuld.Coroutine.Errored do
  @moduledoc """
  Fiber that terminated with an error.

  ## Env semantics

  `env` is the environment at error time — scope and state as they were
  when the error occurred. The scheduler extracts `env.state` into shared
  pool state. Scoped effects have already run their leave_scope cleanup
  (errors propagate through the leave_scope chain).
  """

  alias Skuld.Comp.Env

  @type t :: %__MODULE__{
          id: term(),
          error: term(),
          env: Env.t()
        }

  defstruct [:id, :error, :env]
end