Singletons/Fixity.hs:(0,0)-(0,0): Splicing declarations singletons [d| infix 4 ==== infix 4 <=> (====) :: a -> a -> a a ==== _ = a class MyOrd a where (<=>) :: a -> a -> Ordering infix 4 <=> |] ======> class MyOrd a where (<=>) :: a -> a -> Ordering infix 4 <=> (====) :: a -> a -> a (====) a _ = a infix 4 ==== type (====@#@$$$) (a0123456789876543210 :: a0123456789876543210) (a0123456789876543210 :: a0123456789876543210) = (====) a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings ((====@#@$$) a0123456789876543210) where suppressUnusedWarnings = snd (((,) (:====@#@$$###)) ()) data (====@#@$$) (a0123456789876543210 :: a0123456789876543210) :: (~>) a0123456789876543210 a0123456789876543210 where (:====@#@$$###) :: forall a0123456789876543210 a0123456789876543210 arg. SameKind (Apply ((====@#@$$) a0123456789876543210) arg) ((====@#@$$$) a0123456789876543210 arg) => (====@#@$$) a0123456789876543210 a0123456789876543210 type instance Apply ((====@#@$$) a0123456789876543210) a0123456789876543210 = (====) a0123456789876543210 a0123456789876543210 infix 4 ====@#@$$ instance SuppressUnusedWarnings (====@#@$) where suppressUnusedWarnings = snd (((,) (:====@#@$###)) ()) data (====@#@$) :: forall a0123456789876543210. (~>) a0123456789876543210 ((~>) a0123456789876543210 a0123456789876543210) where (:====@#@$###) :: forall a0123456789876543210 arg. SameKind (Apply (====@#@$) arg) ((====@#@$$) arg) => (====@#@$) a0123456789876543210 type instance Apply (====@#@$) a0123456789876543210 = (====@#@$$) a0123456789876543210 infix 4 ====@#@$ type family (====) (a :: a) (a :: a) :: a where (====) a _ = a type (<=>@#@$$$) (arg0123456789876543210 :: a0123456789876543210) (arg0123456789876543210 :: a0123456789876543210) = (<=>) arg0123456789876543210 arg0123456789876543210 instance SuppressUnusedWarnings ((<=>@#@$$) arg0123456789876543210) where suppressUnusedWarnings = snd (((,) (:<=>@#@$$###)) ()) data (<=>@#@$$) (arg0123456789876543210 :: a0123456789876543210) :: (~>) a0123456789876543210 Ordering where (:<=>@#@$$###) :: forall arg0123456789876543210 arg0123456789876543210 arg. SameKind (Apply ((<=>@#@$$) arg0123456789876543210) arg) ((<=>@#@$$$) arg0123456789876543210 arg) => (<=>@#@$$) arg0123456789876543210 arg0123456789876543210 type instance Apply ((<=>@#@$$) arg0123456789876543210) arg0123456789876543210 = (<=>) arg0123456789876543210 arg0123456789876543210 infix 4 <=>@#@$$ instance SuppressUnusedWarnings (<=>@#@$) where suppressUnusedWarnings = snd (((,) (:<=>@#@$###)) ()) data (<=>@#@$) :: forall a0123456789876543210. (~>) a0123456789876543210 ((~>) a0123456789876543210 Ordering) where (:<=>@#@$###) :: forall arg0123456789876543210 arg. SameKind (Apply (<=>@#@$) arg) ((<=>@#@$$) arg) => (<=>@#@$) arg0123456789876543210 type instance Apply (<=>@#@$) arg0123456789876543210 = (<=>@#@$$) arg0123456789876543210 infix 4 <=>@#@$ class PMyOrd (a :: GHC.Types.Type) where type (<=>) (arg :: a) (arg :: a) :: Ordering infix 4 %==== infix 4 %<=> (%====) :: forall a (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply (====@#@$) t) t :: a) (%====) (sA :: Sing a) _ = sA instance SingI ((====@#@$) :: (~>) a ((~>) a a)) where sing = (singFun2 @(====@#@$)) (%====) instance SingI d => SingI ((====@#@$$) (d :: a) :: (~>) a a) where sing = (singFun1 @((====@#@$$) (d :: a))) ((%====) (sing @d)) class SMyOrd a where (%<=>) :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply (<=>@#@$) t) t :: Ordering) instance SMyOrd a => SingI ((<=>@#@$) :: (~>) a ((~>) a Ordering)) where sing = (singFun2 @(<=>@#@$)) (%<=>) instance (SMyOrd a, SingI d) => SingI ((<=>@#@$$) (d :: a) :: (~>) a Ordering) where sing = (singFun1 @((<=>@#@$$) (d :: a))) ((%<=>) (sing @d))