added list support in let expression, to allow multiple-value-returning functions to easily bind up