# `str.__getitem__` quirks Published: 6 May 2021, 18:00 Since Python doesn't have a `char` type, an element of `str` is always `str`: ```python '@pythonetc'[0][0][0][0][0] # '@' ``` This is an infinite type and you can't construct in a strictly typed language (and why would you?) because it's unclear how to construct the first instance ([thing-in-itself](https://en.wikipedia.org/wiki/Thing-in-itself)?). For example, in Haskell: ```haskell Prelude> str = str str :1:7: error: • Occurs check: cannot construct the infinite type: t1 ~ t -> t1 ```