Imp is an Elixir port of DSPy that enables declarative, self-improving language-model programs on the BEAM. It provides typed signatures for LLM calls, multiple optimization algorithms like GEPA that refine instructions and examples, and support for agent loops with tools running under OTP supervision.