Our enumerated type ServerState has an underlying Int type.
The possible values for ServerState are defined as a data type with different data constructors.
Implementing the Show type class allows values of ServerState to be converted to strings and printed out. If we have a function transition, it can switch between different states.
Running the program results in the following output: