palavras-chave Algebraic program transformation Point-free program calculation Strategic functional programming Type generalization Type specialization XML query languages