Haskell in Maguyva: codegrafen voor typeklassen en modules
De types van Haskell zeggen veel. De graaf laat zien wie erop leunt.
Extensies
.hs, .lhs
Maguyva ondersteunt Elixir met AST, symbolen en graaf, zodat AI-agents modules, behaviours, protocollen en structs volgen in Phoenix- en OTP-code.
Bijna alles in Elixir is een macro-aanroep. defmodule, def, use, alias en @impl worden allemaal als aanroepen geparsed, en use GenServer haalt gedrag binnen dat nooit in het bestand staat. Een tool die alleen aanroepsyntaxis ziet, kan een definitie niet van een afhankelijkheid onderscheiden, en een GenServer-callback niet van een helper.
Maguyva zet die macro’s om in relaties, zodat een agent ziet welke modules een behaviour implementeren en wie een contextfunctie aanroept.
Maguyva dekt .ex- en .exs-bestanden. De macro’s van Elixir worden zo relaties:
alias, import en require leggen imports vast.use legt een import vast. Voor OTP- en framework-behaviours zoals GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView en Ecto.Schema wordt ook vastgelegd dat de module die behaviour implementeert.@behaviour-attributen en defimpl-blokken leggen de implementatie van een behaviour of protocol vast.@doc, @spec, @impl en @callback worden vastgelegd als annotaties van de functie die volgt. Waarde-attributen zoals @timeout 5_000 niet.%User{}-structliterals tellen als instantiatie, raise legt een throw vast, en rescue en catch leggen een catch vast.Taalmacro’s zoals def, defp, defmodule, case en with worden uit de aanroepen gefilterd, zodat de aanroepgraaf jouw functies toont.
Accounts.register_user aan, en vanuit welke controllers?” (find_symbol, daarna dependency_search incoming)GenServer?” (dependency_search)get_task_context)def-, defmodule-, alias- en import-vormen zijn aanroepknopen in de grammatica, dus in structural_search geeft alleen de preset functions resultaten, en dan alleen voor anonieme fn-functies. Gebruik find_symbol voor benoemde functies en modules.IO.puts, String.*, Enum.take en Process.*, worden uit de relaties gefilterd. Gebruik daarvoor text_pattern_search.Koppel een repository via de snelstart en bekijk daarna de ondersteuningsmatrix op de compatibiliteitspagina. Lees voor andere functionele codebases de Haskell-gids.
Beste toepassing
Agentworkflows
Enginedetails
Nuttige MCP-instappunten
Gebruik het voor een contextfunctie of module wanneer je de definitie en aanroepers nodig hebt; structurele presets selecteren geen benoemde `def`-vormen.
Gebruik incoming-traversal op een behaviour of protocol om te zien welke modules het implementeren.
Gebruik het voor prompts als "volg een checkout-request van de controller tot aan de database."
Gerelateerde gidsen
De types van Haskell zeggen veel. De graaf laat zien wie erop leunt.
Extensies
.hs, .lhs
Ruby leest als proza. De afhankelijkheden erachter hebben toch een kaart nodig.
Extensies
.gemfile, .gemspec, .rake, .rakefile, +2 meer