Looks like the implementation of `def width` perform `str(x).decode('utf-8')` on the input list. Is there a rationale for it?