使って動作を検証するreと云う流れになる。型検査にしか使わないところが要なのだが、詳細は後程ということにして、早速コードを見ていこう。大まかにコードの設計について紹介しよう。主なデータ型の意味は以下の通り。Trans状態遷移を表す。遷移前の状態(transFrom)、入力、遷移後の状態を持つ。State内部状態を表す。図で云う菱形や丸の部分。Automatonオートマトンを表す。状態遷移のリスト(transs)、図では菱形で表される初期状態(initial)、二重線で囲まれた受理状態のリスト(accepts)を持つ。AutomatonStateオートマトンのレイアウトや、選択中の頂点・辺の情報、実行中の場合は現在の状態などを持つ。最初の方から見ていこう。MyPreludeはおまじないみたいなものだ。言語拡張を用いる必要がある。側のデータに対応する型を作るのに使われる2。行目以降を見てみよう。要素を表わすデータ型だ。側ではこの子の定義をしらないので、型の名前だけ作って、中身は空にしている。側で型を分けておけばそういったエラーをある程度排除出来る。やり取りが出来る、と云う印のようなものと思っておけばよい。側で印字出来る、ということを表しているにすぎない。関数などを実装する必要はない。方式に則ってなされる。メンバ関数はエクスポートされていない。