title: How do I emulate Lisp (apply) or (curry) in Rust?
body: <p>I'm porting <a href="http://www.yellosoft.us/quickcheck" rel="nofollow noreferrer">QuickCheck</a> to Rust, and I've written everything except <code>for_all</code> as I'm not sure what the type signature should be.</p>
  
  <p>I know that in general, <code>for_all</code> will accept a property lambda and a collection of generator lambdas. It will evaluate the generators in order to create a random test case to give the property as input.</p>
  
  <p>It should print <code>+++ OK, passed 100 tests.</code> if the property returns true, otherwise, it should print <code>*** Failed!</code> and print the offending test case values.</p>