lazily detecting partial application in the encoding; no need to annotate explicit currying anymore---see qs.fst and sf-poly.fst