Toda função que espera um Term que pode vir de retorno de uma substituição agora pode acabar recebendo um TValue (isso é um efeito da abordagem de encapsular um Valor como termo - que foi a solução que fizemos para a substituição ser Id -> Value -> Term -> Term).
Logo toda vez que um pattern matching encontrar um (TValue) vai retornar um erro por não conhecer este tipo de term. Esse era o problema que estavamos tendo na aula no caso de teste das Sums (interp (App getName (Inl r1))). Quando o RProjection encontrava o TValue não sabia como tratar.
Eu resolvi esse problema no pull request #4 , criando o tratamento para o RProjection neste caso. É bem provável que encontremos outros casos análogos com outras funções, então cabe fazer o mesmo tratamento para elas.
Toda função que espera um Term que pode vir de retorno de uma substituição agora pode acabar recebendo um TValue (isso é um efeito da abordagem de encapsular um Valor como termo - que foi a solução que fizemos para a substituição ser Id -> Value -> Term -> Term).
Logo toda vez que um pattern matching encontrar um (TValue) vai retornar um erro por não conhecer este tipo de term. Esse era o problema que estavamos tendo na aula no caso de teste das Sums (interp (App getName (Inl r1))). Quando o RProjection encontrava o TValue não sabia como tratar.
Eu resolvi esse problema no pull request #4 , criando o tratamento para o RProjection neste caso. É bem provável que encontremos outros casos análogos com outras funções, então cabe fazer o mesmo tratamento para elas.