ある型のうち一部の複数のデータコンストラクタのみを受け付ける関数を定義する

GADTs を使うと、以下のように、ある型のうち、特定のデータコンストラクタのみを受け付ける関数を書くことができるようになるけど、

これだと、ある型のうち1つのデータコンストラクタだけ受け付ける関数しか定義することができない。指定した複数のデータコンストラクタだけ受け付ける関数を書くにはどうすればよいか少し悩んだのだが、普通に型クラスを使えばよいだけであった。