def compose(*args):
return reduce(lambda h,g: PotentialComposition(g,h), reversed(list(map(to_potential, args))))<EOL>
compose(g, h...) yields a potential function f that is the result of composing together all the
  arguments g, h, etc. after calling to_potential() on each. The result is defined such that
  f(x) is equivalent to g(h(...(x))).