packages feed

singletons-base-3.2: tests/compile-and-dump/Singletons/T326.hs

module T326 where

import Data.Singletons.TH
import Data.Type.Equality

class C1 a where
  infixl 9 <%>
  (<%>) :: a -> a -> a

class C2 a where
  infixl 9 <%%>
  (<%%>) :: a -> a -> a

$(genPromotions [''C1])
$(genSingletons [''C2])

test1 :: Proxy f -> Proxy g -> Proxy h
      -> (f <%> g) <%> h :~: f <%> g <%> h
test1 _ _ _ = Refl

test2 :: Proxy f -> Proxy g -> Proxy h
      -> (f <%%> g) <%%> h :~: f <%%> g <%%> h
test2 _ _ _ = Refl