Привет. Я пытаюсь сделать авторизацию с помощью метода, описанного в Ghost of Departed Proof. У меня есть тип CanDeleteUser, который может создаваться только в специальном модуле, извне создать значения данного типа нельзя. Есть функция deleteUser, принимающая CanDeleteUser в качестве доказательства, что текущий пользователь может удалить другого пользователя. Если передать в качестве первого аргумента undefined, то пользователь удалится. Есть ли какой-нибудь способ заставить функции, использующие данный тип, вычислять его значения до WKNF?
deleteUser :: CanDeleteUser userId deleteId
-> Named userId (AuthResult (Entity User))
-> Named deleteId (Key User)
-> AppM NoContent