singletons-2.6: tests/compile-and-dump/Singletons/T184.ghc88.template
Singletons/T184.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| boogie :: Maybe a -> Maybe Bool -> Maybe a
boogie ma mb
= do a <- ma
b <- mb
guard b
return a
zip' :: [a] -> [b] -> [(a, b)]
zip' xs ys = [(x, y) | x <- xs | y <- ys]
cartProd :: [a] -> [b] -> [(a, b)]
cartProd xs ys = [(x, y) | x <- xs, y <- ys]
trues :: [Bool] -> [Bool]
trues xs = [x | x <- xs, x] |]
======>
boogie :: Maybe a -> Maybe Bool -> Maybe a
boogie ma mb
= do a <- ma
b <- mb
guard b
return a
zip' :: [a] -> [b] -> [(a, b)]
zip' xs ys = [(x, y) | x <- xs | y <- ys]
cartProd :: [a] -> [b] -> [(a, b)]
cartProd xs ys = [(x, y) | x <- xs, y <- ys]
trues :: [Bool] -> [Bool]
trues xs = [x | x <- xs, x]
type family Lambda_0123456789876543210 xs t where
Lambda_0123456789876543210 xs x = Apply (Apply (>>@#@$) (Apply GuardSym0 x)) (Apply ReturnSym0 x)
type Lambda_0123456789876543210Sym2 xs0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 xs0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 xs0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall xs0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) arg) (Lambda_0123456789876543210Sym2 xs0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 xs0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 xs0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 xs0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall xs0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 xs0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 xs0123456789876543210 = Lambda_0123456789876543210Sym1 xs0123456789876543210
type family Lambda_0123456789876543210 x xs ys t where
Lambda_0123456789876543210 x xs ys y = Apply ReturnSym0 (Apply (Apply Tuple2Sym0 x) y)
type Lambda_0123456789876543210Sym4 x0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 x0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym3 ys0123456789876543210 xs0123456789876543210 x0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym3KindInference) ())
data Lambda_0123456789876543210Sym3 x0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym3KindInference :: forall x0123456789876543210
xs0123456789876543210
ys0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym3 x0123456789876543210 xs0123456789876543210 ys0123456789876543210) arg) (Lambda_0123456789876543210Sym4 x0123456789876543210 xs0123456789876543210 ys0123456789876543210 arg) =>
Lambda_0123456789876543210Sym3 x0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym3 ys0123456789876543210 xs0123456789876543210 x0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 ys0123456789876543210 xs0123456789876543210 x0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 xs0123456789876543210 x0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 x0123456789876543210 xs0123456789876543210 ys0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall x0123456789876543210
xs0123456789876543210
ys0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 x0123456789876543210 xs0123456789876543210) arg) (Lambda_0123456789876543210Sym3 x0123456789876543210 xs0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 x0123456789876543210 xs0123456789876543210 ys0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 xs0123456789876543210 x0123456789876543210) ys0123456789876543210 = Lambda_0123456789876543210Sym3 xs0123456789876543210 x0123456789876543210 ys0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 x0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 x0123456789876543210 xs0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall x0123456789876543210
xs0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 x0123456789876543210) arg) (Lambda_0123456789876543210Sym2 x0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 x0123456789876543210 xs0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 x0123456789876543210) xs0123456789876543210 = Lambda_0123456789876543210Sym2 x0123456789876543210 xs0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 x0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall x0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 x0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 x0123456789876543210 = Lambda_0123456789876543210Sym1 x0123456789876543210
type family Lambda_0123456789876543210 xs ys t where
Lambda_0123456789876543210 xs ys x = Apply (Apply (>>=@#@$) ys) (Apply (Apply (Apply Lambda_0123456789876543210Sym0 x) xs) ys)
type Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall xs0123456789876543210
ys0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210) arg) (Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 ys0123456789876543210 xs0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall xs0123456789876543210
ys0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) arg) (Lambda_0123456789876543210Sym2 xs0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) ys0123456789876543210 = Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 xs0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall xs0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 xs0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 xs0123456789876543210 = Lambda_0123456789876543210Sym1 xs0123456789876543210
type family Lambda_0123456789876543210 xs ys t where
Lambda_0123456789876543210 xs ys x = Apply ReturnSym0 x
type Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall xs0123456789876543210
ys0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210) arg) (Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 ys0123456789876543210 xs0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall xs0123456789876543210
ys0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) arg) (Lambda_0123456789876543210Sym2 xs0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) ys0123456789876543210 = Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 xs0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall xs0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 xs0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 xs0123456789876543210 = Lambda_0123456789876543210Sym1 xs0123456789876543210
type family Lambda_0123456789876543210 xs ys t where
Lambda_0123456789876543210 xs ys y = Apply ReturnSym0 y
type Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall xs0123456789876543210
ys0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210) arg) (Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 ys0123456789876543210 xs0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall xs0123456789876543210
ys0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) arg) (Lambda_0123456789876543210Sym2 xs0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) ys0123456789876543210 = Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 xs0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall xs0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 xs0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 xs0123456789876543210 = Lambda_0123456789876543210Sym1 xs0123456789876543210
type family Case_0123456789876543210 arg_0123456789876543210 xs ys t where
Case_0123456789876543210 arg_0123456789876543210 xs ys '(x,
y) = Apply ReturnSym0 (Apply (Apply Tuple2Sym0 x) y)
type family Lambda_0123456789876543210 xs ys t where
Lambda_0123456789876543210 xs ys arg_0123456789876543210 = Case_0123456789876543210 arg_0123456789876543210 xs ys arg_0123456789876543210
type Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall xs0123456789876543210
ys0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210) arg) (Lambda_0123456789876543210Sym3 xs0123456789876543210 ys0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 ys0123456789876543210 xs0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 ys0123456789876543210 xs0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 xs0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall xs0123456789876543210
ys0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) arg) (Lambda_0123456789876543210Sym2 xs0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 xs0123456789876543210 ys0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 xs0123456789876543210) ys0123456789876543210 = Lambda_0123456789876543210Sym2 xs0123456789876543210 ys0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 xs0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall xs0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 xs0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 xs0123456789876543210 = Lambda_0123456789876543210Sym1 xs0123456789876543210
type family Lambda_0123456789876543210 a ma mb t where
Lambda_0123456789876543210 a ma mb b = Apply (Apply (>>@#@$) (Apply GuardSym0 b)) (Apply ReturnSym0 a)
type Lambda_0123456789876543210Sym4 a0123456789876543210 ma0123456789876543210 mb0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 a0123456789876543210 ma0123456789876543210 mb0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym3 mb0123456789876543210 ma0123456789876543210 a0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym3KindInference) ())
data Lambda_0123456789876543210Sym3 a0123456789876543210 ma0123456789876543210 mb0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym3KindInference :: forall a0123456789876543210
ma0123456789876543210
mb0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym3 a0123456789876543210 ma0123456789876543210 mb0123456789876543210) arg) (Lambda_0123456789876543210Sym4 a0123456789876543210 ma0123456789876543210 mb0123456789876543210 arg) =>
Lambda_0123456789876543210Sym3 a0123456789876543210 ma0123456789876543210 mb0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym3 mb0123456789876543210 ma0123456789876543210 a0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 mb0123456789876543210 ma0123456789876543210 a0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 ma0123456789876543210 a0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 a0123456789876543210 ma0123456789876543210 mb0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall a0123456789876543210
ma0123456789876543210
mb0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 a0123456789876543210 ma0123456789876543210) arg) (Lambda_0123456789876543210Sym3 a0123456789876543210 ma0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 a0123456789876543210 ma0123456789876543210 mb0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 ma0123456789876543210 a0123456789876543210) mb0123456789876543210 = Lambda_0123456789876543210Sym3 ma0123456789876543210 a0123456789876543210 mb0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 a0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 a0123456789876543210 ma0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall a0123456789876543210
ma0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 a0123456789876543210) arg) (Lambda_0123456789876543210Sym2 a0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 a0123456789876543210 ma0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 a0123456789876543210) ma0123456789876543210 = Lambda_0123456789876543210Sym2 a0123456789876543210 ma0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 a0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 a0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 a0123456789876543210 = Lambda_0123456789876543210Sym1 a0123456789876543210
type family Lambda_0123456789876543210 ma mb t where
Lambda_0123456789876543210 ma mb a = Apply (Apply (>>=@#@$) mb) (Apply (Apply (Apply Lambda_0123456789876543210Sym0 a) ma) mb)
type Lambda_0123456789876543210Sym3 ma0123456789876543210 mb0123456789876543210 t0123456789876543210 =
Lambda_0123456789876543210 ma0123456789876543210 mb0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym2 mb0123456789876543210 ma0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym2KindInference) ())
data Lambda_0123456789876543210Sym2 ma0123456789876543210 mb0123456789876543210 t0123456789876543210
where
Lambda_0123456789876543210Sym2KindInference :: forall ma0123456789876543210
mb0123456789876543210
t0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym2 ma0123456789876543210 mb0123456789876543210) arg) (Lambda_0123456789876543210Sym3 ma0123456789876543210 mb0123456789876543210 arg) =>
Lambda_0123456789876543210Sym2 ma0123456789876543210 mb0123456789876543210 t0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym2 mb0123456789876543210 ma0123456789876543210) t0123456789876543210 = Lambda_0123456789876543210 mb0123456789876543210 ma0123456789876543210 t0123456789876543210
instance SuppressUnusedWarnings (Lambda_0123456789876543210Sym1 ma0123456789876543210) where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym1KindInference) ())
data Lambda_0123456789876543210Sym1 ma0123456789876543210 mb0123456789876543210
where
Lambda_0123456789876543210Sym1KindInference :: forall ma0123456789876543210
mb0123456789876543210
arg. SameKind (Apply (Lambda_0123456789876543210Sym1 ma0123456789876543210) arg) (Lambda_0123456789876543210Sym2 ma0123456789876543210 arg) =>
Lambda_0123456789876543210Sym1 ma0123456789876543210 mb0123456789876543210
type instance Apply (Lambda_0123456789876543210Sym1 ma0123456789876543210) mb0123456789876543210 = Lambda_0123456789876543210Sym2 ma0123456789876543210 mb0123456789876543210
instance SuppressUnusedWarnings Lambda_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd (((,) Lambda_0123456789876543210Sym0KindInference) ())
data Lambda_0123456789876543210Sym0 ma0123456789876543210
where
Lambda_0123456789876543210Sym0KindInference :: forall ma0123456789876543210
arg. SameKind (Apply Lambda_0123456789876543210Sym0 arg) (Lambda_0123456789876543210Sym1 arg) =>
Lambda_0123456789876543210Sym0 ma0123456789876543210
type instance Apply Lambda_0123456789876543210Sym0 ma0123456789876543210 = Lambda_0123456789876543210Sym1 ma0123456789876543210
type TruesSym1 (a0123456789876543210 :: [Bool]) =
Trues a0123456789876543210
instance SuppressUnusedWarnings TruesSym0 where
suppressUnusedWarnings = snd (((,) TruesSym0KindInference) ())
data TruesSym0 :: (~>) [Bool] [Bool]
where
TruesSym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply TruesSym0 arg) (TruesSym1 arg) =>
TruesSym0 a0123456789876543210
type instance Apply TruesSym0 a0123456789876543210 = Trues a0123456789876543210
type CartProdSym2 (a0123456789876543210 :: [a0123456789876543210]) (a0123456789876543210 :: [b0123456789876543210]) =
CartProd a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings (CartProdSym1 a0123456789876543210) where
suppressUnusedWarnings = snd (((,) CartProdSym1KindInference) ())
data CartProdSym1 (a0123456789876543210 :: [a0123456789876543210]) :: forall b0123456789876543210.
(~>) [b0123456789876543210] [(a0123456789876543210,
b0123456789876543210)]
where
CartProdSym1KindInference :: forall a0123456789876543210
a0123456789876543210
arg. SameKind (Apply (CartProdSym1 a0123456789876543210) arg) (CartProdSym2 a0123456789876543210 arg) =>
CartProdSym1 a0123456789876543210 a0123456789876543210
type instance Apply (CartProdSym1 a0123456789876543210) a0123456789876543210 = CartProd a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings CartProdSym0 where
suppressUnusedWarnings = snd (((,) CartProdSym0KindInference) ())
data CartProdSym0 :: forall a0123456789876543210
b0123456789876543210.
(~>) [a0123456789876543210] ((~>) [b0123456789876543210] [(a0123456789876543210,
b0123456789876543210)])
where
CartProdSym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply CartProdSym0 arg) (CartProdSym1 arg) =>
CartProdSym0 a0123456789876543210
type instance Apply CartProdSym0 a0123456789876543210 = CartProdSym1 a0123456789876543210
type Zip'Sym2 (a0123456789876543210 :: [a0123456789876543210]) (a0123456789876543210 :: [b0123456789876543210]) =
Zip' a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings (Zip'Sym1 a0123456789876543210) where
suppressUnusedWarnings = snd (((,) Zip'Sym1KindInference) ())
data Zip'Sym1 (a0123456789876543210 :: [a0123456789876543210]) :: forall b0123456789876543210.
(~>) [b0123456789876543210] [(a0123456789876543210,
b0123456789876543210)]
where
Zip'Sym1KindInference :: forall a0123456789876543210
a0123456789876543210
arg. SameKind (Apply (Zip'Sym1 a0123456789876543210) arg) (Zip'Sym2 a0123456789876543210 arg) =>
Zip'Sym1 a0123456789876543210 a0123456789876543210
type instance Apply (Zip'Sym1 a0123456789876543210) a0123456789876543210 = Zip' a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings Zip'Sym0 where
suppressUnusedWarnings = snd (((,) Zip'Sym0KindInference) ())
data Zip'Sym0 :: forall a0123456789876543210 b0123456789876543210.
(~>) [a0123456789876543210] ((~>) [b0123456789876543210] [(a0123456789876543210,
b0123456789876543210)])
where
Zip'Sym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply Zip'Sym0 arg) (Zip'Sym1 arg) =>
Zip'Sym0 a0123456789876543210
type instance Apply Zip'Sym0 a0123456789876543210 = Zip'Sym1 a0123456789876543210
type BoogieSym2 (a0123456789876543210 :: Maybe a0123456789876543210) (a0123456789876543210 :: Maybe Bool) =
Boogie a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings (BoogieSym1 a0123456789876543210) where
suppressUnusedWarnings = snd (((,) BoogieSym1KindInference) ())
data BoogieSym1 (a0123456789876543210 :: Maybe a0123456789876543210) :: (~>) (Maybe Bool) (Maybe a0123456789876543210)
where
BoogieSym1KindInference :: forall a0123456789876543210
a0123456789876543210
arg. SameKind (Apply (BoogieSym1 a0123456789876543210) arg) (BoogieSym2 a0123456789876543210 arg) =>
BoogieSym1 a0123456789876543210 a0123456789876543210
type instance Apply (BoogieSym1 a0123456789876543210) a0123456789876543210 = Boogie a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings BoogieSym0 where
suppressUnusedWarnings = snd (((,) BoogieSym0KindInference) ())
data BoogieSym0 :: forall a0123456789876543210.
(~>) (Maybe a0123456789876543210) ((~>) (Maybe Bool) (Maybe a0123456789876543210))
where
BoogieSym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply BoogieSym0 arg) (BoogieSym1 arg) =>
BoogieSym0 a0123456789876543210
type instance Apply BoogieSym0 a0123456789876543210 = BoogieSym1 a0123456789876543210
type family Trues (a :: [Bool]) :: [Bool] where
Trues xs = Apply (Apply (>>=@#@$) xs) (Apply Lambda_0123456789876543210Sym0 xs)
type family CartProd (a :: [a]) (a :: [b]) :: [(a, b)] where
CartProd xs ys = Apply (Apply (>>=@#@$) xs) (Apply (Apply Lambda_0123456789876543210Sym0 xs) ys)
type family Zip' (a :: [a]) (a :: [b]) :: [(a, b)] where
Zip' xs ys = Apply (Apply (>>=@#@$) (Apply (Apply MzipSym0 (Apply (Apply (>>=@#@$) xs) (Apply (Apply Lambda_0123456789876543210Sym0 xs) ys))) (Apply (Apply (>>=@#@$) ys) (Apply (Apply Lambda_0123456789876543210Sym0 xs) ys)))) (Apply (Apply Lambda_0123456789876543210Sym0 xs) ys)
type family Boogie (a :: Maybe a) (a :: Maybe Bool) :: Maybe a where
Boogie ma mb = Apply (Apply (>>=@#@$) ma) (Apply (Apply Lambda_0123456789876543210Sym0 ma) mb)
sTrues ::
forall (t :: [Bool]). Sing t -> Sing (Apply TruesSym0 t :: [Bool])
sCartProd ::
forall a b (t :: [a]) (t :: [b]).
Sing t
-> Sing t -> Sing (Apply (Apply CartProdSym0 t) t :: [(a, b)])
sZip' ::
forall a b (t :: [a]) (t :: [b]).
Sing t -> Sing t -> Sing (Apply (Apply Zip'Sym0 t) t :: [(a, b)])
sBoogie ::
forall a (t :: Maybe a) (t :: Maybe Bool).
Sing t -> Sing t -> Sing (Apply (Apply BoogieSym0 t) t :: Maybe a)
sTrues (sXs :: Sing xs)
= (applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sXs))
((singFun1 @(Apply Lambda_0123456789876543210Sym0 xs))
(\ sX
-> case sX of {
(_ :: Sing x)
-> (applySing
((applySing ((singFun2 @(>>@#@$)) (%>>)))
((applySing ((singFun1 @GuardSym0) sGuard)) sX)))
((applySing ((singFun1 @ReturnSym0) sReturn)) sX) }))
sCartProd (sXs :: Sing xs) (sYs :: Sing ys)
= (applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sXs))
((singFun1 @(Apply (Apply Lambda_0123456789876543210Sym0 xs) ys))
(\ sX
-> case sX of {
(_ :: Sing x)
-> (applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sYs))
((singFun1
@(Apply (Apply (Apply Lambda_0123456789876543210Sym0 x) xs) ys))
(\ sY
-> case sY of {
(_ :: Sing y)
-> (applySing ((singFun1 @ReturnSym0) sReturn))
((applySing
((applySing ((singFun2 @Tuple2Sym0) STuple2)) sX))
sY) })) }))
sZip' (sXs :: Sing xs) (sYs :: Sing ys)
= (applySing
((applySing ((singFun2 @(>>=@#@$)) (%>>=)))
((applySing
((applySing ((singFun2 @MzipSym0) sMzip))
((applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sXs))
((singFun1 @(Apply (Apply Lambda_0123456789876543210Sym0 xs) ys))
(\ sX
-> case sX of {
(_ :: Sing x)
-> (applySing ((singFun1 @ReturnSym0) sReturn)) sX })))))
((applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sYs))
((singFun1 @(Apply (Apply Lambda_0123456789876543210Sym0 xs) ys))
(\ sY
-> case sY of {
(_ :: Sing y)
-> (applySing ((singFun1 @ReturnSym0) sReturn)) sY }))))))
((singFun1 @(Apply (Apply Lambda_0123456789876543210Sym0 xs) ys))
(\ sArg_0123456789876543210
-> case sArg_0123456789876543210 of {
(_ :: Sing arg_0123456789876543210)
-> (id
@(Sing (Case_0123456789876543210 arg_0123456789876543210 xs ys arg_0123456789876543210)))
(case sArg_0123456789876543210 of {
STuple2 (sX :: Sing x) (sY :: Sing y)
-> (applySing ((singFun1 @ReturnSym0) sReturn))
((applySing ((applySing ((singFun2 @Tuple2Sym0) STuple2)) sX))
sY) }) }))
sBoogie (sMa :: Sing ma) (sMb :: Sing mb)
= (applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sMa))
((singFun1 @(Apply (Apply Lambda_0123456789876543210Sym0 ma) mb))
(\ sA
-> case sA of {
(_ :: Sing a)
-> (applySing ((applySing ((singFun2 @(>>=@#@$)) (%>>=))) sMb))
((singFun1
@(Apply (Apply (Apply Lambda_0123456789876543210Sym0 a) ma) mb))
(\ sB
-> case sB of {
(_ :: Sing b)
-> (applySing
((applySing ((singFun2 @(>>@#@$)) (%>>)))
((applySing ((singFun1 @GuardSym0) sGuard)) sB)))
((applySing ((singFun1 @ReturnSym0) sReturn))
sA) })) }))
instance SingI (TruesSym0 :: (~>) [Bool] [Bool]) where
sing = (singFun1 @TruesSym0) sTrues
instance SingI (CartProdSym0 :: (~>) [a] ((~>) [b] [(a, b)])) where
sing = (singFun2 @CartProdSym0) sCartProd
instance SingI d =>
SingI (CartProdSym1 (d :: [a]) :: (~>) [b] [(a, b)]) where
sing = (singFun1 @(CartProdSym1 (d :: [a]))) (sCartProd (sing @d))
instance SingI (Zip'Sym0 :: (~>) [a] ((~>) [b] [(a, b)])) where
sing = (singFun2 @Zip'Sym0) sZip'
instance SingI d =>
SingI (Zip'Sym1 (d :: [a]) :: (~>) [b] [(a, b)]) where
sing = (singFun1 @(Zip'Sym1 (d :: [a]))) (sZip' (sing @d))
instance SingI (BoogieSym0 :: (~>) (Maybe a) ((~>) (Maybe Bool) (Maybe a))) where
sing = (singFun2 @BoogieSym0) sBoogie
instance SingI d =>
SingI (BoogieSym1 (d :: Maybe a) :: (~>) (Maybe Bool) (Maybe a)) where
sing = (singFun1 @(BoogieSym1 (d :: Maybe a))) (sBoogie (sing @d))