1. is bad as you don't want to suffer the tuple allocation for every scalar value (pretty crazy overhead considering we want to use data as natively as possible)
2. yes, that was what I was thinking but it is a bit hard to deduce "non-hashable" without a try-except. For now just punting works for me.