packages feed

Agda-2.3.2.2: test/fail/Inference-of-implicit-function-space.agda

module Inference-of-implicit-function-space where

postulate
  _⇔_         : Set → Set → Set
  equivalence : {A B : Set} → (A → B) → (B → A) → A ⇔ B
  A           : Set

P : Set
P = {x : A} → A ⇔ A

works : P ⇔ P
works = equivalence (λ r {x} → r {x = x}) (λ r {x} → r {x = x})

works₂ : P ⇔ P
works₂ = equivalence {A = P} (λ r {x} → r {x = x}) (λ r {y} → r {y})

fails : P ⇔ P
fails = equivalence (λ r {x} → r {x = x}) (λ r {y} → r {y})