:: [a] -> Int -> a package:base-prelude

List index (subscript) operator, starting from 0. It is an instance of the more general genericIndex, which takes an index of any integral type.
>>> ['a', 'b', 'c'] !! 0
'a'

>>> ['a', 'b', 'c'] !! 2
'c'

>>> ['a', 'b', 'c'] !! 3
*** Exception: Prelude.!!: index too large

>>> ['a', 'b', 'c'] !! (-1)
*** Exception: Prelude.!!: negative index
The genericIndex function is an overloaded version of !!, which accepts any Integral value as the index.