Учитывая этот кодпеременные типа Закрепление в расширениях локали
locale A =
fixes foo :: "'a"
locale B = A +
fixes bar :: "'a × 'a"
locale C' = A +
fixes baz :: "'a"
begin
sublocale B foo "(foo, baz)".
end
Я получаю
Type unification failed
Failed to meet type constraint:
Term: (foo, baz) :: 'b × 'a
Type: 'b × 'b
так что кажется, что Изабель не понимает, что baz
и foo
должны быть одного и того же типа. Есть ли способ исправить это?
Отлично, я не знаю, о 'constrains'. Похоже, я могу даже добавить ограничения сортировки там (что было бы моим следующим вопросом). –