Давайте, что у меня есть два псевдонима типа:Как "брошенные" Типы профсоюзов вяз
type alias A = {...}
type alias B = {...}
и объединение типа
type Content = A | B
и тип модели
type alias Model= {cont : Content, ...}
init : Content -> Model
init cont = {cont = cont, ...}
Как Я передаю запись типа A в init.
a : A
a = {...}
init a
выдает следующее сообщение об ошибке:
Detected errors in 1 module.
## ERRORS in Main.elm ##########################################################
-- TYPE MISMATCH ------------------------------------------------------ Main.elm
The 1st argument to function `init` has an unexpected type.
78| init e
^
As I infer the type of values flowing through your program, I see a conflict
between these two types:
Content
A
Я бы себе представить, что это своего рода «подтипа» Контента. Я не могу просто написать
a:Content
a = {...}
init a
, потому что некоторые из логики делают случай анализ на содержание
Являются псевдонимами типа А и В, а также определение содержания в тот же модуль? Это не компиляция с ошибкой Duplicate Definition. –
Они не в том же модуле, но я ссылаюсь на 'type Content = modulename.A | modulename.B'. Проблема в том, что эти типы не могут быть действительно подключены к модулю. Я мог бы сделать какой-то прокси-тип, я полагаю. Как вы думаете? –