Elixir en Maguyva: grafos de código para apps Phoenix y OTP
La estructura de Elixir vive en las macros. El grafo la lee como estructura.
Extensiones
.ex, .exs
Maguyva admite Haskell con AST, símbolos y grafo, para que los agentes de IA sigan funciones, instancias de clases de tipos y constructores de datos entre módulos.
Haskell llama a funciones sin paréntesis, las compone con operadores y despacha a través de clases de tipos. render user es una llamada, f . g <$> xs contiene varias, y show significa lo que diga la instancia de ese tipo. Una búsqueda de texto encuentra los nombres, no las instancias que hay detrás.
Maguyva registra instancias y constructores como relaciones, para que un agente vea qué tipos implementan una clase y dónde se construye un valor.
Maguyva asigna los archivos .hs y .lhs a Haskell. Las funciones y los enlaces se extraen como invocables, y las clases de tipos, los tipos data y los newtype como tipos. Las llamadas se reconocen en la aplicación separada por espacios y a través de operadores infijos, y las importaciones normalizan las cláusulas qualified, hiding y as.
Las clases de tipos y los constructores se convierten en relaciones del grafo:
instance Eq Point registra que Point implementa Eq.Point 1 2, cuenta como instanciación.error, undefined y throw registran throws, y los handlers como catch registran catches.Como las declaraciones de instancia pueden definir nombres como show o return, no se asume que una definición del mismo archivo sea el destino de una llamada sin receptor con ese nombre.
parseConfig y desde qué módulos?” (find_symbol, luego dependency_search incoming)ToJSON?” (dependency_search)get_task_context)map, foldr, fmap, pure y >>=, y módulos como Data.List y Control.Monad, se filtran de las relaciones. Usa text_pattern_search para encontrarlos.functions de structural_search solo devuelve lambdas, y los presets methods y variables no seleccionan nada. Usa find_symbol para funciones con nombre..lhs se leen completos con la gramática de Haskell, así que espera resultados parciales en ellos.Conecta un repositorio con el inicio rápido y luego revisa la matriz de compatibilidad en la página de compatibilidad. Para otras bases de código funcionales, lee la guía de Elixir.
Mejor uso
Flujos de trabajo del agente
Detalles del motor
Puntos de entrada MCP útiles
Úsalo para una función o un tipo cuando necesites la definición y las referencias; los presets estructurales solo devuelven lambdas.
Usa el recorrido incoming sobre una clase de tipos para ver qué tipos tienen instancias.
Úsalo para prompts como "rastrea cómo se decodifica y valida una petición".
Guías relacionadas
La estructura de Elixir vive en las macros. El grafo la lee como estructura.
Extensiones
.ex, .exs
Relevante cuando quieres asistencia de IA en Rust sin perder las salvaguardas estructurales que hacen que valga la pena usar Rust.
Extensiones
.rs