SEND+MORE=MONEYをHaskellで解く (from ocaml-nagoya)

名大では、学部生向けのocamlの授業が (情報工学コースではなく) 理学部数学科であるらしい (しかしセミナーとかぶっていて見に行けないので伝聞)。
そこで今日出た演習問題:

  S E N D
+ M O R E
----------
M O N E Y
(S,M != 0)

S,E,N,D,M,O,R,Yはユニークな0..9の整数です。これを求めよ。

(ぐぐったら、CPANにはこれを解く専用のモジュールがあった...)

ざっくりHaskellで書きました: