packages feed

Agda-2.3.2.2: test/succeed/Issue392.agda

-- Andreas, 2011-09-11
module Issue392 where

import Common.Irrelevance  

-- Create an irrelevant record R1 (all fields irrelevant).
record R1 : Set1 where
  field
    .f1 : Set

{- module R1 .(r : R1) where
     .f1 : Set -- = R1.f1 r    
-}

-- Create an irrelevant instance f2 of R1.
record R2 : Set2 where
  field
    .f2 : R1
    f3  : Set
  
-- This succeeds even though f2 is irrelevant.
  open R1 f2 public

{- A more realistic use would be s.th. like

  record IsEquivalence {a ℓ} {A : Set a}
                       (_≈_ : Rel A ℓ) : Set (a ⊔ ℓ) where
    field
      .refl  : Reflexive _≈_
      .sym   : Symmetric _≈_
      .trans : Transitive _≈_

  record Setoid c ℓ : Set (suc (c ⊔ ℓ)) where
    infix 4 _≈_
    field
      Carrier       : Set c
      _≈_           : Rel Carrier ℓ
      .isEquivalence : IsEquivalence _≈_

    open IsEquivalence isEquivalence public
-}