いっそhaskell--とか言うサブセットでも定義して実装するとか
なんか色々なものがclassで実装出来そうな気がする
つまり標準的な仕様から除外出来そうな。互換性には目を瞑るって事で