blob: bd7c374aec694978a7a8363e01333514e3f231fc [file] [log] [blame] [edit]
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module Data.PropEq where
data (:=:) :: k -> k -> * where
Refl :: a :=: a
sym :: a :=: b -> b :=: a
sym Refl = Refl
trans :: a :=: b -> b :=: c -> a :=: c
trans Refl Refl = Refl