true = \t f -> t
false = \t f -> f
toBool = \b -> b True False
bxor u v = \t f -> u (v f t) (v t f)
main = do
print $ map toBool
[true
, false
, bnot true
, bnot false
, bnot
(bnot false
), bnot
(bnot true
), bxor true true
, bxor true false
, bxor false true
, bxor false false
, bxor
(bnot
(bnot true
)) false
]
CnRydWUgID0gXHQgZiAtPiB0CmZhbHNlID0gXHQgZiAtPiBmCgp0b0Jvb2wgPSBcYiAtPiBiIFRydWUgRmFsc2UKCmJub3QgPSBmbGlwCmJ4b3IgdSB2ID0gXHQgZiAtPiB1ICh2IGYgdCkgKHYgdCBmKQoKCm1haW4gPSBkbwogIHByaW50ICQgbWFwIHRvQm9vbCBbdHJ1ZSwgZmFsc2UsIGJub3QgdHJ1ZSwgYm5vdCBmYWxzZSwgYm5vdCAoYm5vdCBmYWxzZSksIGJub3QgKGJub3QgdHJ1ZSksIGJ4b3IgdHJ1ZSB0cnVlLCBieG9yIHRydWUgZmFsc2UsIGJ4b3IgZmFsc2UgdHJ1ZSwgYnhvciBmYWxzZSBmYWxzZSwgYnhvciAoYm5vdCAoYm5vdCB0cnVlKSkgZmFsc2Vd
[True,False,False,True,False,True,False,True,True,False,True]