Elixir в Maguyva: графы кода для приложений на Phoenix и OTP
Структура Elixir живёт внутри макросов. Граф читает их как структуру.
Расширения
.ex, .exs
Maguyva поддерживает Haskell с AST, символами и графом, чтобы ИИ-агенты могли прослеживать функции, экземпляры классов типов и конструкторы данных между модулями.
Haskell вызывает функции без скобок, комбинирует их операторами и диспетчеризует через классы типов. render user является вызовом, f . g <$> xs содержит несколько вызовов, а show означает то, что задаёт экземпляр для этого типа. Текстовый поиск находит имена, но не экземпляры за ними.
Maguyva фиксирует экземпляры и конструкторы как связи, и агент видит, какие типы реализуют класс и где создаётся значение.
Maguyva сопоставляет файлы .hs и .lhs с Haskell. Функции и привязки извлекаются как вызываемые объекты, а классы типов, типы data и типы newtype как типы. Вызовы распознаются в применении через пробел и через инфиксные операторы, а импорты нормализуют предложения qualified, hiding и as.
Классы типов и конструкторы становятся связями графа:
instance Eq Point фиксирует, что Point реализует Eq.Point 1 2, считается созданием экземпляра.error, undefined и throw фиксируют выброс исключения, а обработчики вроде catch фиксируют его перехват.Поскольку объявления экземпляров могут определять имена вроде show или return, определение в том же файле не считается целью вызова без получателя с таким именем.
parseConfig и из каких модулей?» (find_symbol, затем dependency_search по входящим связям)ToJSON?» (dependency_search)get_task_context)map, foldr, fmap, pure и >>=, а также модули вроде Data.List и Control.Monad, отфильтрованы из связей. Для них используйте text_pattern_search.functions в structural_search возвращает только лямбды, а пресеты methods и variables ничего не выбирают. Для именованных функций используйте find_symbol..lhs читаются целиком грамматикой Haskell; для них результаты могут быть неполными.Подключите репозиторий по быстрому старту, затем изучите матрицу поддержки на странице совместимости. Для других функциональных кодовых баз прочитайте руководство по Elixir.
Лучше всего подходит
Сценарии работы агента
Детали движка
Полезные точки входа MCP
Используйте для функции или типа, когда нужны определение и ссылки; структурные пресеты возвращают только лямбды.
Используйте обход входящих связей для класса типов, чтобы увидеть, у каких типов есть экземпляры.
Используйте для промптов вроде «проследи, как запрос разбирается и проверяется».
Похожие гайды
Структура Elixir живёт внутри макросов. Граф читает их как структуру.
Расширения
.ex, .exs
Актуально, когда вам нужна ИИ-помощь в Rust без потери структурных гарантий безопасности, ради которых Rust вообще стоит использовать.
Расширения
.rs