Например, из документации типа Task
в модуле Task
:
type alias Task err ok =
Task err ok
Или из источника:
type alias Task x a =
Platform.Task x a
Я предполагаю, что ответ состоит в том, чтобы сделать его доступным из модуля, который определяется как его собственный. Это правильно?
UPDATE:
Чад Гилберт приводит хороший момент, упоминая Platform
примитивы , такие как типы Task
и ProcessId
, конструкторы которых никогда не используются там, но имеет смысл, почему они будут сгруппированы при таком Центральное место. Хотя его ответ не объясняет, почему они имеют псевдонимы в своих соответствующих модулях (см. Process.Id и Task.Task выше).
Я полагаю, что без наложения псевдонимов любой, кто пытается использовать модули Task
и Process
, должен был бы импортировать эти конкретные типы (т. Е. Platform.Task
, Platform.ProcessId
), поскольку они не импортируются по умолчанию (см. Импорт по умолчанию вяза ).
UPDATE_2:
Еще один пример - Value
в модуле Json.Decode
module :
-- From the docs:
type alias Value =
Value
-- From the source:
type alias Value = JsEncode.Value
Я думаю, что это подтверждает мои предположения выше, но я не хочу отвечать на мой вопрос, потому что я новичок в Вязах и легко могу ошибаться.