以下のコードは、REPL を入力すると機能します。
type seat = seat_type * int
val my_seat = (Window, 13)
fun aow seat =
case seat of
(Window,_) => "Window"
| (Aisle,_) => "Aisle"
fun is_window (x,_) = x = Window
aow my_seat
is_window my_seat
ただし、ファイルに保存してコンパイルすると、コンパイル中に次のエラーで式が失敗しますaow my_seat
。is_window my_seat
test1.sml:12.23-16.18 Error: operator is not a function [tycon mismatch]
operator: seat_type
in expression:
Window aow
uncaught exception Error
raised at: ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
../compiler/TopLevel/interact/evalloop.sml:44.55
../compiler/TopLevel/interact/evalloop.sml:296.17-296.20
それらをコメントアウトすると、ファイルがコンパイルされ、REPL に両方の式を入力すると機能します。このエラーの原因は何ですか? また、関連する場合は、私のデータ型と型の定義に関するコメントを歓迎します。