Adding completeness to defunctionnalization