rsh has it's limitations as we don't know the concrete type. this means we can't currently handle something like Future<Iterator<String>> unless we constrain the Iterator to be a Vec. should also help with #45 in providing less cryptic error messages