Таким образом, у нас могут быть явные аргументы, обозначаемые ()
.
Мы также можем иметь неявные аргументы, обозначаемые {}
.
Все идет нормально.
Однако зачем нам также нужна []
нотация конкретно для классов типов?
В чем разница между следующими двумя:
theorem foo {x : Type} : ∀s : inhabited x, x := sorry
theorem foo' {x : Type} [s : inhabited x] : x := sorry