use applicative and normal order evaluation