Singletons/T78.hs:(0,0)-(0,0): Splicing declarations singletons [d| foo :: MaybeBool -> Bool foo (Just False) = False foo (Just True) = True foo Nothing = False |] ======> foo :: MaybeBool -> Bool foo (Just False) = False foo (Just True) = True foo Nothing = False type FooSym1 (t :: Maybe Bool) = Foo t instance SuppressUnusedWarnings FooSym0 where suppressUnusedWarnings _ = snd ((GHC.Tuple.(,) FooSym0KindInference) GHC.Tuple.()) data FooSym0 (l :: TyFun (Maybe Bool) Bool) = forall arg. SameKind (Apply FooSym0 arg) (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = Foo l type family Foo (a :: Maybe Bool) :: Bool where Foo (Just False) = FalseSym0 Foo (Just True) = TrueSym0 Foo Nothing = FalseSym0 sFoo :: forall (t :: Maybe Bool). Sing t -> Sing (Apply FooSym0 t :: Bool) sFoo (SJust SFalse) = SFalse sFoo (SJust STrue) = STrue sFoo SNothing = SFalse