Open
Description
Functors are currently given the type/kind: Type↑ = ∀ {ℓ} → Type ℓ → Type ℓ
. This disallows valid cases that the level changes in the output index, so we should carefully decide which ones we want to support + provide alternative definitions to cover the rest.
@WhatisRT has a use case for his axiomatic set-theory library, where one cannot a monad instance for the powerset construction.
Possible alternative definitions:
- outer quantification:
Type↑ a b = Type a → Type b
(e.g. covers disjoint union / co-products, but fails forTC
)- c.f. PR Change
Monad
polymorphism #11
- c.f. PR Change
- the ultra-general
Type↑ f = ∀ {ℓ} → Type ℓ → Type (f ℓ)
- c.f. PR Change
Monad
polymorphism #19
- c.f. PR Change
- ...