If you want to know where the range stops, just get the last item…

ghci> last ['a'.. ] '\1114111'

Another method: Char is a bounded type, i.e. a type with minimum and maximum values defined. Types in the Bounded class provide a maxBound value. Since maxBound is polymorphic, you have to explicitly state the type of the value you're looking for.

ghci> maxBound :: Char '\1114111' ghci> maxBound :: Int 9223372036854775807

There is no maxBound for Integer since they are unbounded.

The Haskell prelude explains the connection between ['a'..] and maxBound . The notation ['a'..] is syntactic sugar for enumFrom a ; here enumFrom is a method of the Enum type class. The documentation of Enum specifies that when the type is also an instance of Bounded , enumFrom x should be equivalent to enumFromTo x maxBound , or more readably, [x..] = [x..maxBound] . So the last element of ['a'..] must be the same as maxBound :: Char .