# PR-O4.1 - Callable Signature Identity and Dense Symbol Table ## Briefing Eliminar ambiguidade de callsites no backend substituindo resolucao por nome simples por identidade canônica de callable baseada em assinatura. ## Target - Modelo `IRBackend`/`IRBackendExecutableFunction`. - Lowering PBS para callsites `CALL_FUNC`. - Backend `LowerToIRVM` no mapeamento de callee. - Infra `source/tables` para simbolos de callable. ## Method - Introduzir `CallableId` e `CallableSignatureRef` usando `DenseTable`/`InternTable` em `source/tables`. - FE emite `calleeCallableId` para `CALL_FUNC` em vez de lookup textual por nome. - Chave canônica de assinatura: `module + callable + arity + type-shape`. - Backend resolve `CALL_FUNC` por id canônico, sem heuristica `putIfAbsent(name)`. ## Acceptance Criteria - Overloads válidos com mesmo nome e assinaturas diferentes chamam alvo correto. - Não há resolução de callee por nome simples no caminho executável. - Mesmo grafo de entrada gera mesma tabela densa de callables. - Falha de resolução gera erro determinístico de lowering. ## Tests - Fixtures com overloads por aridade e por shape de tipo. - Regressão negativa para callsite sem `CallableId` válido. - Teste de determinismo de IDs de callable entre execuções.