It is as if we are stating that the new data type
Bool can have two values (two nullary constructors
False) and it should also be made an instance of the classes
Read, but we let the compiler write the actual code for us using the default definitions. Note that for the
Ord class, the default ordering will be the order in which the constructors are defined – in this case,
True comes after
False and is, therefore "greater than"
False. With this definition, we can use methods of all the class instances included on the type