packages feed

singletons-2.5: tests/compile-and-dump/Singletons/Fixity.ghc86.template

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))