use list of (f, term)s