packages feed

singletons-2.4: tests/compile-and-dump/Singletons/T209.ghc84.template

Singletons/T209.hs:(0,0)-(0,0): Splicing declarations
    singletons
      [d| m :: a -> b -> Bool -> Bool
          m _ _ x = x
          
          class C a b
          data Hm
            = Hm
            deriving anyclass (C Bool)
          
          deriving anyclass instance C a a => C a (Maybe a) |]
  ======>
    class C a b
    m :: a -> b -> Bool -> Bool
    m _ _ x = x
    data Hm
      = Hm
      deriving anyclass (C Bool)
    deriving anyclass instance C a a => C a (Maybe a)
    type HmSym0 = Hm
    type MSym3 (t :: a0123456789876543210) (t :: b0123456789876543210) (t :: Bool) =
        M t t t
    instance SuppressUnusedWarnings MSym2 where
      suppressUnusedWarnings
        = snd ((GHC.Tuple.(,) MSym2KindInference) GHC.Tuple.())
    data MSym2 (l :: a0123456789876543210) (l :: b0123456789876543210) (l :: TyFun Bool Bool)
      = forall arg. SameKind (Apply (MSym2 l l) arg) (MSym3 l l arg) =>
        MSym2KindInference
    type instance Apply (MSym2 l l) l = M l l l
    instance SuppressUnusedWarnings MSym1 where
      suppressUnusedWarnings
        = snd ((GHC.Tuple.(,) MSym1KindInference) GHC.Tuple.())
    data MSym1 (l :: a0123456789876543210) (l :: TyFun b0123456789876543210 (TyFun Bool Bool
                                                                             -> GHC.Types.Type))
      = forall arg. SameKind (Apply (MSym1 l) arg) (MSym2 l arg) =>
        MSym1KindInference
    type instance Apply (MSym1 l) l = MSym2 l l
    instance SuppressUnusedWarnings MSym0 where
      suppressUnusedWarnings
        = snd ((GHC.Tuple.(,) MSym0KindInference) GHC.Tuple.())
    data MSym0 (l :: TyFun a0123456789876543210 (TyFun b0123456789876543210 (TyFun Bool Bool
                                                                             -> GHC.Types.Type)
                                                 -> GHC.Types.Type))
      = forall arg. SameKind (Apply MSym0 arg) (MSym1 arg) =>
        MSym0KindInference
    type instance Apply MSym0 l = MSym1 l
    type family M (a :: a) (a :: b) (a :: Bool) :: Bool where
      M _ _ x = x
    class PC (a :: GHC.Types.Type) (b :: GHC.Types.Type)
    instance PC Bool Hm
    instance PC a (Maybe a)
    sM ::
      forall (t :: a) (t :: b) (t :: Bool).
      Sing t
      -> Sing t
         -> Sing t -> Sing (Apply (Apply (Apply MSym0 t) t) t :: Bool)
    sM _ _ (sX :: Sing x) = sX
    data instance Sing (z :: Hm) where SHm :: Sing Hm
    type SHm = (Sing :: Hm -> GHC.Types.Type)
    instance SingKind Hm where
      type Demote Hm = Hm
      fromSing SHm = Hm
      toSing Hm = SomeSing SHm
    class SC a b
    instance SC Bool Hm
    instance SC a a => SC a (Maybe a)
    instance SingI Hm where
      sing = SHm