preserve declared type of runfciont arguments
more tests; now preserving declared type of let variables
more tests; at 90% coverage overall