code: def curry(f, *args0, **kwargs0):
      '''
      curry(f, ...) yields a function equivalent to f with all following arguments and keyword
        arguments passed. This is much like the partial function, but yields a function instead of
        a partial object and thus is suitable for use with pimms lazy maps.
      '''
      def curried_f(*args, **kwargs): 
          return f(*(args0 + args), **merge(kwargs0, kwargs))
      return curried_f curry(f, *args0, **kwargs0):
      '''
      curry(f, ...) yields a function equivalent to f with all following arguments and keyword
        arguments passed. This is much like the partial function, but yields a function instead of
        a partial object and thus is suitable for use with pimms lazy maps.
      '''
      def curried_f(*args, **kwargs): 
          return f(*(args0 + args), **merge(kwargs0, kwargs))
      return curried_f
docs: curry(f, ...) yields a function equivalent to f with all following arguments and keyword
        arguments passed. This is much like the partial function, but yields a function instead of
        a partial object and thus is suitable for use with pimms lazy maps.