[Agda] AIM 10 notes
Benja Fallenstein
benja.fallenstein at gmail.com
Mon Sep 21 12:23:57 CEST 2009
Hi Conor,
(new to this, please be kind if I say something particularly stupid :-))
> As it is, you may find traditional miseries
> arising, when (^ Nat) -> (^ Nat) turns out to be different from
> ^(Nat -> Nat). But perhaps you've got that covered..?
I've noticed that IIUC, the two are isomorphic:
ltr : ∀ {A} → ↑ (A → A) → ↑ A → ↑ A
ltr f x = ⇑ (f (⇓ x))
rtl : ∀ {A} → (↑ A → ↑ A) → ↑ (A → A)
rtl f = ⇑ (λ x → ⇓ f (⇑ x))
so what would be the traditional miseries? Definitional equality?
Annoyance if the inference algorithm is too naive to insert all the
arrows you want?
[on Coq]
> I believe it allows one to write
>
> cons (List Nat) nil : List Set
It does; I happened to try that one yesterday after reading some old
post of yours about universe polymorphism :-)
Isn't typical ambiguity sufficient for that, though? It seems like you
only need to infer an index one level higher for the List Set
constructors than for List Nat?
Thanks,
- Benja
More information about the Agda
mailing list