# ToolCall v0.1.0 - Table of Contents > Derive LLM tool-call schemas from Elixir @spec and @doc, with a runtime dispatcher. ## Pages - [ToolCall](readme.md) - [Changelog](changelog.md) - [Usage](usage.md) - [Design](design.md) - [Roadmap](roadmap.md) - [Pitfalls](pitfalls.md) - [Numbers](number-handling.md) ## Modules - [ToolCall](ToolCall.md): Derive LLM tool-call schemas from `@spec` and `@doc`. - [ToolCall.Coerce](ToolCall.Coerce.md): Runtime normalisation of decoded JSON arguments into the value domains that typespecs promise. - [ToolCall.Doc](ToolCall.Doc.md): Extracts tool descriptions from `@doc` strings. - [ToolCall.Emit](ToolCall.Emit.md): Dispatches IR to a provider-specific schema. - [ToolCall.Emit.Anthropic](ToolCall.Emit.Anthropic.md): Anthropic tool definition (`name` / `description` / `input_schema`). - [ToolCall.Emit.OpenAI](ToolCall.Emit.OpenAI.md): OpenAI function-calling schema. - [ToolCall.Emit.Schema](ToolCall.Emit.Schema.md): JSON Schema rendering shared by the provider emitters. - [ToolCall.IR](ToolCall.IR.md): Intermediate representation between Elixir typespecs and wire schemas. - [ToolCall.IR.Field](ToolCall.IR.Field.md): One entry of an object-shaped type. - [ToolCall.IR.Param](ToolCall.IR.Param.md): One positional parameter of a tool function. - [ToolCall.IR.Tool](ToolCall.IR.Tool.md): A compiled tool, as embedded into the defining module. - [ToolCall.IR.Type](ToolCall.IR.Type.md): A node in the value-domain tree. - [ToolCall.Runner](ToolCall.Runner.md): Validates and dispatches a decoded argument map to the tool function. - [ToolCall.TypeProvider](ToolCall.TypeProvider.md): Resolves custom remote typespecs for `use ToolCall, types: [...]`. - [ToolCall.Typespec](ToolCall.Typespec.md): Converts a quoted typespec AST (aliases already expanded) into `ToolCall.IR.Type`. ## Mix Tasks - [mix tool_call.clean](Mix.Tasks.ToolCall.Clean.md): Removes orphaned typedoc companion beams. - [mix tool_call.export](Mix.Tasks.ToolCall.Export.md): Exports the schemas derived by `use ToolCall` as JSON.