Pattern matching on a non-empty list is also inelegant, because it is implemented as a tuple, which creates a leaky abstraction.
Pattern matching on a non-empty list is also inelegant, because it is implemented as a tuple, which creates a leaky abstraction.