--- /dev/null
+Typechecked:
+{- nonrec -}
+ShouldSucceed.Foo.o_and = /\ a.t39 -> \{-classdict-} [] [o_and.t40] -> o_and.t40
+{- nonrec -}
+defm.ShouldSucceed.Foo.o_and =
+ /\ a.t41 ->
+ \{-dict-} d.ShouldSucceed.Foo.t42 ->
+ (error (a.t41 -> a.t41 -> a.t41))
+ "No default method for \"ShouldSucceed.Foo.defm.ShouldSucceed.Foo.o_and\"\n"
+{- rec -}
+dfun.ShouldSucceed.Foo.Bool = ({-dict-} [] [const.ShouldSucceed.Foo.Bool.o_and])
+const.ShouldSucceed.Foo.Bool.o_and :: Bool -> Bool -> Bool
+const.ShouldSucceed.Foo.Bool.o_and
+ False x.r30
+ = False
+const.ShouldSucceed.Foo.Bool.o_and
+ x.r31 False
+ = False
+const.ShouldSucceed.Foo.Bool.o_and
+ True True
+ = True
+{- rec -}
+dfun.ShouldSucceed.Foo.Int = ({-dict-} [] [const.ShouldSucceed.Foo.Int.o_and])
+const.ShouldSucceed.Foo.Int.o_and :: Int -> Int -> Int
+const.ShouldSucceed.Foo.Int.o_and
+ x.r32 0 = lit.t24
+const.ShouldSucceed.Foo.Int.o_and
+ 0 x.r33 = lit.t30
+const.ShouldSucceed.Foo.Int.o_and
+ 1 1 = lit.t38
+lit.t21 = MkInt 0#
+(==.t22) = eqInt
+lit.t24 = lit.t21
+lit.t26 = lit.t21
+(==.t27) = (==.t22)
+lit.t30 = lit.t21
+lit.t32 = MkInt 1#
+(==.t33) = (==.t22)
+lit.t35 = lit.t32
+(==.t36) = (==.t22)
+lit.t38 = lit.t32
+AbsBinds [ot3] [] [(f.t1, ShouldSucceed.f)]
+ (ShouldSucceed.Foo.o_and.t5, const.ShouldSucceed.Foo.Bool.o_and)
+ {- nonrec -}
+ f.t1 :: Bool -> ot3 -> Bool
+ f.t1 x.r61 y.r62
+ = ShouldSucceed.Foo.o_and.t5 x.r61 False
+AbsBinds
+[ot9, a.t10]
+[d.Num.t15, d.ShouldSucceed.Foo.t16]
+[(g.t7, ShouldSucceed.g)]
+ (fromInt.t14, fromInt a.t10 d.Num.t15)
+ (lit.t13, fromInt.t14 (MkInt 1#))
+ (ShouldSucceed.Foo.o_and.t11,
+ ShouldSucceed.Foo.o_and a.t10 d.ShouldSucceed.Foo.t16)
+ {- nonrec -}
+ g.t7 :: a.t10 -> ot9 -> a.t10
+ g.t7 x.r63 y.r64
+ = ShouldSucceed.Foo.o_and.t11 x.r63 lit.t13
+