{-# LANGUAGE DeriveFoldable #-}
import Data
.Foldable
(Foldable
, foldr, toList
) import Data.Function (on)
data BB a
= L
| K
(BB a
) a
(BB a
) deriving (Show, Foldable
)
instance Eq a
=> Eq (BB a
) where (==) = (==) `on` toList
ey0jIExBTkdVQUdFIERlcml2ZUZvbGRhYmxlICMtfQogCmltcG9ydCBQcmVsdWRlIGhpZGluZyAoZm9sZHIpCmltcG9ydCBEYXRhLkZvbGRhYmxlIChGb2xkYWJsZSwgZm9sZHIsIHRvTGlzdCkKaW1wb3J0IERhdGEuRnVuY3Rpb24gKG9uKQogCmRhdGEgQkIgYSA9IEwgfCBLIChCQiBhKSBhIChCQiBhKSBkZXJpdmluZyAoU2hvdywgRm9sZGFibGUpCiAKaW5zdGFuY2UgRXEgYSA9PiBFcSAoQkIgYSkgd2hlcmUKICAoPT0pID0gKD09KSBgb25gIHRvTGlzdAogIAptYWluOjpJTygpCm1haW4gPSBwcmludCAgMC43Cg==