Hi, beginner question, I hope this is the right place to ask: for a top-level definition, I can define which arguments are implicit. But how do I do this for a polymorphic function argument? E.g. `fun (id : forall a, a -> a) => id _ 3`

. I often find myself calling functions like id with _ because a is known from the context.

I've learned that I can just use `forall {a}`

. Another related question I have is, functions that are defined with implicit arguments, such as `id`

in Equations have types with existential variables, for example: `id : ?A -> ?A where ?A : [ |- Type]`

. However I'd like to use such a function as a normal polymorphic type, i.e. `forall A, A -> A`

, is that possible?

`@id`

Thanks!

Last updated: Jun 24 2024 at 14:01 UTC