added a new form of the sample_with macro that works with an expression
added a new form of the sample_with macro that works with an expression

It uses a closure-like syntax to get the variable names and the expression,
then builds the nested closure with that.
This avoids the closure re-wrapping problem of the original form (that
causes type inference errors).

darkstalker/frappe