# skuld v0.33.0 - Table of Contents > Core effect system for Elixir: write business logic as pure effect descriptions, swap handlers for testing. Provides the Comp engine and foundational effects (State, Reader, Writer, Throw, Yield). ## Pages - Introduction - [Skuld](readme.md) - [Why Effects?](why.md) - [How Effects Work](what.md) - [Getting Started](getting-started.md) - [Syntax In Depth](syntax.md) - [Quick Reference](quick-reference.md) - [Performance](performance.md) - [Package Architecture](architecture.md) - Foundational Effects - [State, Reader & Writer](state-reader-writer.md) - [Throw & Bracket](throw-bracket.md) - [Fresh & Random](fresh-random.md) - [FxList](fxlist.md) - [Yield](yield.md) - [Command & Transaction](command-transaction.md) - Recipes - [Hexagonal Architecture](hexagonal-architecture.md) - [Property-Based Testing](property-testing.md) - [Handler Stacks](handler-stacks.md) - [PageMachine](liveview.md) - [Durable Computation](durable-computation.md) - [Batch Loading](batch-loading.md) - Under the Hood - [How It Works](internals.md) - [Reference](reference.md) ## Modules - [Skuld.Comp.ITotalLinearHandler](Skuld.Comp.ITotalLinearHandler.md): Behaviour for effect operation handlers that are provably total and linear. - [Skuld.Comp.ScopeEnv](Skuld.Comp.ScopeEnv.md): Scope machinery carried through a computation. - [Skuld.Effects.FreshInt](Skuld.Effects.FreshInt.md): FreshInt effect — generate monotonically increasing integers. - [Skuld.Effects.State.Change](Skuld.Effects.State.Change.md): Represents a state change with old and new values. - Core - [Skuld.Comp](Skuld.Comp.md): Core computation engine and foundational effects for the Skuld ecosystem. - [Skuld.Syntax](Skuld.Syntax.md): Syntax module providing the computation do-notation macro. - Foundational Effects - [Skuld.Effects.Bracket](Skuld.Effects.Bracket.md): Bracket effect for safe resource acquisition and cleanup. - [Skuld.Effects.Command](Skuld.Effects.Command.md): Effect for dispatching commands through a unified pipeline. - [Skuld.Effects.Fresh](Skuld.Effects.Fresh.md): Fresh effect - generate fresh/unique UUIDs. - [Skuld.Effects.FxFasterList](Skuld.Effects.FxFasterList.md): FxFasterList - High-performance effectful list operations. - [Skuld.Effects.FxList](Skuld.Effects.FxList.md): FxList - Effectful list operations with full control effect support. - [Skuld.Effects.Random](Skuld.Effects.Random.md): Random effect - generate random values. - [Skuld.Effects.Reader](Skuld.Effects.Reader.md): Reader effect - access an immutable environment value. - [Skuld.Effects.State](Skuld.Effects.State.md): State effect - mutable state threaded through computation. - [Skuld.Effects.Throw](Skuld.Effects.Throw.md): Throw/Catch effects - error handling with scoped catching. - [Skuld.Effects.Transaction](Skuld.Effects.Transaction.md): Transaction effect — env state rollback with optional database transactions. - [Skuld.Effects.Writer](Skuld.Effects.Writer.md): Writer effect - accumulate a log during computation. - [Skuld.Effects.Yield](Skuld.Effects.Yield.md): Yield effect - coroutine-style suspension and resumption. - Core Types - [Skuld.Comp.Cancelled](Skuld.Comp.Cancelled.md): Sentinel indicating a computation was cancelled. - [Skuld.Comp.Env](Skuld.Comp.Env.md): Environment construction and manipulation. - [Skuld.Comp.ExternalSuspend](Skuld.Comp.ExternalSuspend.md): External suspension for yielding to code outside Skuld's env threading. - [Skuld.Comp.ForeignSuspend](Skuld.Comp.ForeignSuspend.md): Suspension for external/foreign resources (e.g., JavaScript Promises). - [Skuld.Comp.Throw](Skuld.Comp.Throw.md): Error result that Catch recognizes - [Skuld.Comp.Types](Skuld.Comp.Types.md): Type definitions for Skuld.Comp. - Protocols - [Skuld.Comp.IHandle](Skuld.Comp.IHandle.md): Behaviour for effect operation handlers. - [Skuld.Comp.IInstall](Skuld.Comp.IInstall.md): Behaviour for effects supporting handler installation via catch clauses. - [Skuld.Comp.IIntercept](Skuld.Comp.IIntercept.md): Behaviour for effects supporting local interception via catch clauses. - [Skuld.Comp.ISentinel](Skuld.Comp.ISentinel.md): Protocol for handling sentinel values in run/run! and generic sentinel inspection. - [Skuld.Comp.IThrowable](Skuld.Comp.IThrowable.md): Protocol for unwrapping exceptions in `Throw.try_catch/1`. - Exceptions - [Skuld.Comp.InvalidComputation](Skuld.Comp.InvalidComputation.md): Raised when a non-computation value is used where a computation is expected. - [Skuld.Comp.MatchFailed](Skuld.Comp.MatchFailed.md): Represents a pattern match failure in a `comp` block. - [Skuld.Comp.ThrowError](Skuld.Comp.ThrowError.md): Exception raised when a Skuld computation throws via `Throw.throw/1` and the error is not caught. - [Skuld.Comp.UncaughtExit](Skuld.Comp.UncaughtExit.md): Exception raised when an Elixir `exit` is not caught within a Skuld computation. - [Skuld.Comp.UncaughtThrow](Skuld.Comp.UncaughtThrow.md): Exception raised when an Elixir `throw` is not caught within a Skuld computation. ## Mix Tasks - [mix skuld.docs.nav](Mix.Tasks.Skuld.Docs.Nav.md): Injects navigation headers and footers into documentation files.