# schooner v1.0.0 - Table of Contents An embeddable, sandboxed Scheme interpreter for the BEAM, targeting the r7rs-small language minus its mutable operations. ## Pages - [Schooner](readme.md) - [Changelog](changelog.md) - Guides - [Embedding Schooner](embedding.md) - [Host Functions](host-functions.md) - [Running Untrusted Scheme](sandbox.md) - [Deviations from r7rs-small](deviations.md) ## Modules - Embedding API - [Schooner](Schooner.md): An embeddable, sandboxed Scheme interpreter for the BEAM, targeting the r7rs-small language minus its mutable operations. - [Schooner.Compiled](Schooner.Compiled.md): Opaque artifact produced by `Schooner.compile/2` and consumed by `Schooner.run_compiled/2`. - [Schooner.Env](Schooner.Env.md): Immutable-ish environment for the Scheme evaluator. - [Schooner.Environment](Schooner.Environment.md): Opaque embedding-friendly environment that bundles a runtime `Schooner.Env`, an expander `SyntaxEnv`, and a library registry. - [Schooner.Host](Schooner.Host.md): Helpers for authoring Elixir-side host functions exposed to Scheme. - [Schooner.Library](Schooner.Library.md): Registry entries for r7rs libraries. - [Schooner.Time](Schooner.Time.md): The r7rs `(scheme time)` library, supplied as a host library. - [Schooner.Value](Schooner.Value.md): Term representation of Scheme values. - Errors - [Schooner.Error](Schooner.Error.md): Host-side exception raised when a Scheme `raise` / `raise-continuable` / `error` is not caught by any installed `with-exception-handler` or `guard`. The struct carries the original Scheme value verbatim in `:value`; for an error object the host can pattern-match `{:error_obj, kind, message, irritants}` directly, or use `irritants/1` for the common case. - [Schooner.Eval.Error](Schooner.Eval.Error.md): Exception raised by the evaluator for runtime and syntactic failures. - [Schooner.Expander.Error](Schooner.Expander.Error.md): Exception raised by the expander for malformed macro forms, failed pattern matches, and other expansion-time failures. - [Schooner.Host.TypeError](Schooner.Host.TypeError.md): Raised by `Schooner.Host` asserting accessors (`to_*!/2`) when a Scheme value does not match the shape the host expected. - [Schooner.Lexer.Error](Schooner.Lexer.Error.md): Exception raised by the lexer on malformed source. - [Schooner.Library.NotFoundError](Schooner.Library.NotFoundError.md): Raised when an `import` declaration (or `Schooner.Library.fetch!/2`) refers to a library that is not in the registry. - [Schooner.Primitive.Error](Schooner.Primitive.Error.md): Exception raised by built-in primitives for domain-specific failures — type errors, division by zero, and the "would require complex / irrational" cases that Schooner does not implement. - [Schooner.Reader.Error](Schooner.Reader.Error.md): Exception raised by the reader on malformed source.