more conservative Struct#to_hash

As the modified test shows, a list<string> would not work because
String#to_hash doesn't exist. Solution: don't call String#to_hash