Use record accessors rather than pattern matching
Remove Show derivation