https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e
От темы может зависеть. Или почему-то формат неправильно задетектился.
Читать полностью…ну то есть forall k -> Type
выглядит как "мы принимаем на вход тип какого-то околотипа", потому что обычно k используют для того что раньше называли каинды, а тут k это не он
forall a -> Type
forall (a :: k) -> Type
k -> Type
вот эти три - то же самое (только в двух лишняя зависимость)
и вот эти два тоже (между собой)
forall k. forall (a :: k) -> Type
forall k. k -> Type
Так мне нужно наоборот, что бы не перехватывались. Автор sydtest уже ответил, что нельзя из коробки. Видимо нужно перегрузить местный IsTest
.
то есть можно написать
k -> Type
можно написать
forall k1. forall (k :: k1) -> Type
как ты предлалаешь, можно forall убрать как у тебя так у меня, это один и тот же forall
если forall a -> b в b ничего не зависит от a, то можно смело заменять на k -> b
Читать полностью…да, не понятно, почему. Ведь k
у меня тоже вроде бы под forall
, нет?
справедливости ради неочевидно, что стандалон сигнатура на столько всё меняет
Читать полностью…type Ap :: forall k. k -> (Type -> Type) -> Type -> TypeЧитать полностью…
type family Ap t f where
Ap (t :: (Type -> Type) -> Type -> Type) f = t f
Ap (t :: Type -> Type) f = t
он не мусорный для примера где @, потому что приятнее явно задавать че там за аргументы
потому что k -> Type не так наглядно видно что это функция от двух аргументов на самом деле, а из forall k. k -> Type видно четко
поэтому матчинг двух аргументов не вызывает вопроса
forall k.k -> Type
Это то же самое, только ьут аргумент каинда k мусорный ещё
Мне не понравилось, что если t трансфомер то t m, и просто m если m не трансформер
Читать полностью…