多分、>>494 が言いたいことは、「オブジェクト(Card)の中に、何故アルゴリ
ズム(置けるかどうか)を書いているの?」ということ、では?

本来は、アルゴリズム用のクラス (== 七並べ) を Card クラスの外部に持って
きて、他のゲームの場合にはアルゴリズム用のクラスを入れ替えれば自然で
しょ? Card クラスには、Card としての機能だけを定義して。

元々のサンプルは、説明の都合上、ああなったのでは (と思いたい)。

Haskell は知らんけど、CLOS なんかでもクラスの外にメソッド書くからねぇ...
今回の例では都合よかったかも。