Singletons/T29.hs:(0,0)-(0,0): Splicing declarations singletons [d| foo :: Bool -> Bool foo x = not $ x bar :: Bool -> Bool bar x = not . not . not $ x baz :: Bool -> Bool baz x = not $! x ban :: Bool -> Bool ban x = not . not . not $! x |] ======> foo :: Bool -> Bool foo x = (not $ x) bar :: Bool -> Bool bar x = ((not . (not . not)) $ x) baz :: Bool -> Bool baz x = (not $! x) ban :: Bool -> Bool ban x = ((not . (not . not)) $! x) type BanSym1 (t :: Bool) = Ban t instance SuppressUnusedWarnings BanSym0 where suppressUnusedWarnings _ = snd ((GHC.Tuple.(,) BanSym0KindInference) GHC.Tuple.()) data BanSym0 (l :: TyFun Bool Bool) = forall arg. SameKind (Apply BanSym0 arg) (BanSym1 arg) => BanSym0KindInference type instance Apply BanSym0 l = Ban l type BazSym1 (t :: Bool) = Baz t instance SuppressUnusedWarnings BazSym0 where suppressUnusedWarnings _ = snd ((GHC.Tuple.(,) BazSym0KindInference) GHC.Tuple.()) data BazSym0 (l :: TyFun Bool Bool) = forall arg. SameKind (Apply BazSym0 arg) (BazSym1 arg) => BazSym0KindInference type instance Apply BazSym0 l = Baz l type BarSym1 (t :: Bool) = Bar t instance SuppressUnusedWarnings BarSym0 where suppressUnusedWarnings _ = snd ((GHC.Tuple.(,) BarSym0KindInference) GHC.Tuple.()) data BarSym0 (l :: TyFun Bool Bool) = forall arg. SameKind (Apply BarSym0 arg) (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = Bar l type FooSym1 (t :: Bool) = Foo t instance SuppressUnusedWarnings FooSym0 where suppressUnusedWarnings _ = snd ((GHC.Tuple.(,) FooSym0KindInference) GHC.Tuple.()) data FooSym0 (l :: TyFun Bool Bool) = forall arg. SameKind (Apply FooSym0 arg) (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = Foo l type family Ban (a :: Bool) :: Bool where Ban x = Apply (Apply ($!$) (Apply (Apply (:.$) NotSym0) (Apply (Apply (:.$) NotSym0) NotSym0))) x type family Baz (a :: Bool) :: Bool where Baz x = Apply (Apply ($!$) NotSym0) x type family Bar (a :: Bool) :: Bool where Bar x = Apply (Apply ($$) (Apply (Apply (:.$) NotSym0) (Apply (Apply (:.$) NotSym0) NotSym0))) x type family Foo (a :: Bool) :: Bool where Foo x = Apply (Apply ($$) NotSym0) x sBan :: forall (t :: Bool). Sing t -> Sing (Apply BanSym0 t :: Bool) sBaz :: forall (t :: Bool). Sing t -> Sing (Apply BazSym0 t :: Bool) sBar :: forall (t :: Bool). Sing t -> Sing (Apply BarSym0 t :: Bool) sFoo :: forall (t :: Bool). Sing t -> Sing (Apply FooSym0 t :: Bool) sBan (sX :: Sing x) = (applySing ((applySing ((singFun2 @($!$)) (%$!))) ((applySing ((applySing ((singFun3 @(:.$)) (%:.))) ((singFun1 @NotSym0) sNot))) ((applySing ((applySing ((singFun3 @(:.$)) (%:.))) ((singFun1 @NotSym0) sNot))) ((singFun1 @NotSym0) sNot))))) sX sBaz (sX :: Sing x) = (applySing ((applySing ((singFun2 @($!$)) (%$!))) ((singFun1 @NotSym0) sNot))) sX sBar (sX :: Sing x) = (applySing ((applySing ((singFun2 @($$)) (%$))) ((applySing ((applySing ((singFun3 @(:.$)) (%:.))) ((singFun1 @NotSym0) sNot))) ((applySing ((applySing ((singFun3 @(:.$)) (%:.))) ((singFun1 @NotSym0) sNot))) ((singFun1 @NotSym0) sNot))))) sX sFoo (sX :: Sing x) = (applySing ((applySing ((singFun2 @($$)) (%$))) ((singFun1 @NotSym0) sNot))) sX