Могу ли я указать, что тип является произвольной записью?

у меня есть тип

      type alias WithStatus l =
  { l
  | status :
    Status
  }

Это расширяет запись с полем состояния.

Теперь я хотел бы создать функцию, которая берет запись и присваивает ей определенный статус, поэтому я сделал:

      addStatus : Status -> l -> WithStatus l
addStatus status l =
  { l
  | status =
    status
  }

Однако elm жалуется, что потенциально не может быть записью.

      This is not a record, so it has no fields to update!

21|>  { l
22|   | status =
23|     status
24|   }

This `l` value is a:

    l

But I need a record!

Что является правдой. Однако elm не может узнать, что псевдоним типа является записью, он проверяет это на сайте использования. Поэтому кажется немного странным, что он жалуется здесь.

Есть ли способ выразить функцию, которая принимает любую запись lи добавляет статус?

0 ответов

Другие вопросы по тегам