Elixir no Maguyva: grafos de código para apps Phoenix e OTP
A estrutura do Elixir mora nas macros. O grafo lê essas macros como estrutura.
Extensões
.ex, .exs
O Maguyva oferece suporte a Haskell com AST, símbolos e grafo, para que agentes de IA sigam funções, instâncias de type classes e construtores de dados entre módulos.
Haskell chama funções sem parênteses, compõe funções com operadores e faz dispatch por type classes. render user é uma chamada, f . g <$> xs contém várias, e show significa o que a instância daquele tipo disser. Uma busca de texto encontra os nomes, não as instâncias por trás deles.
O Maguyva registra instâncias e construtores como relações, para que um agente veja quais tipos implementam uma classe e onde um valor é construído.
O Maguyva associa arquivos .hs e .lhs a Haskell. Funções e bindings são extraídos como invocáveis, e type classes, tipos data e newtypes como tipos. Chamadas são reconhecidas na aplicação separada por espaços e por meio de operadores infixos, e os imports normalizam as cláusulas qualified, hiding e as.
Type classes e construtores viram relações do grafo:
instance Eq Point registra que Point implementa Eq.Point 1 2, conta como instanciação.error, undefined e throw registram throws, e handlers como catch registram catches.Como declarações de instância podem definir nomes como show ou return, uma definição do mesmo arquivo não é assumida como alvo de uma chamada sem receiver com esse nome.
parseConfig, e de quais módulos?” (find_symbol, depois dependency_search incoming)ToJSON?” (dependency_search)get_task_context)map, foldr, fmap, pure e >>=, e módulos como Data.List e Control.Monad, são filtrados das relações. Use text_pattern_search para encontrá-los.functions do structural_search retorna apenas lambdas, e os presets methods e variables não selecionam nada. Use find_symbol para funções nomeadas..lhs são lidos inteiros com a gramática do Haskell, então espere resultados parciais neles.Conecte um repositório pelo início rápido e depois confira a matriz de suporte na página de compatibilidade. Para outras bases de código funcionais, leia o guia de Elixir.
Uso ideal
Fluxos de trabalho de agente
Detalhes do motor
Pontos de entrada MCP úteis
Use para uma função ou tipo quando precisar da definição e das referências; os presets estruturais retornam apenas lambdas.
Use a travessia incoming em uma type class para ver quais tipos têm instâncias.
Use para prompts como "rastreie como uma requisição é decodificada e validada".
Guias relacionados
A estrutura do Elixir mora nas macros. O grafo lê essas macros como estrutura.
Extensões
.ex, .exs
Relevante quando você quer assistência de IA em Rust sem perder as barreiras estruturais que tornam Rust vantajoso de usar.
Extensões
.rs