foldl : ∀ {a b} {A : Set a} (B : ℕ → Set b) {m} →
(∀ {n} → B n → A → B (suc n)) →
B zero →
Vec A m → B m
foldl b _⊕_ n [] = n
foldl b _⊕_ n (x ∷ xs) = foldl (λ n → b (suc n)) _⊕_ (_⊕_ {0} n x) xs
Если я передаю 0 явно, как в версии Lean, я получаю подсказку относительно ответа. То, что происходит, заключается в том, что Agda делает то же самое, что и в версии Lean, а именно оборачивает неявный аргумент arg таким образом, чтобы он был suc
'd.
Это удивительно, поскольку я думал, что неявные аргументы просто означают, чтоАгда должна предоставить их самостоятельно. Я не думал, что это изменит функцию при передаче в качестве аргумента.