19 lines
342 B
Haskell
19 lines
342 B
Haskell
module Data.Identity ((:~:) (Refl)) where
|
|
|
|
import Relation
|
|
import Data.Kind (Type)
|
|
|
|
type (:~:) :: i -> i -> Type
|
|
data (:~:) :: i -> i -> Type where
|
|
Refl :: a :~: a
|
|
|
|
instance Transitive (:~:) where
|
|
Refl . Refl = Refl
|
|
|
|
instance Reflexive (:~:)
|
|
instance Wide (:~:) where
|
|
id = Refl
|
|
|
|
instance Symmetric (:~:) where
|
|
inv Refl = Refl
|