{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverlappingInstances #-}
class IsList a where
instance IsList a where
isList x = False
instance IsList [a] where
isList x = True
isList2
:: (IsList a
) => a
-> BoolisList2 = isList
main = do
ey0jIExBTkdVQUdFIEZsZXhpYmxlSW5zdGFuY2VzICMtfQp7LSMgTEFOR1VBR0UgT3ZlcmxhcHBpbmdJbnN0YW5jZXMgIy19CgpjbGFzcyBJc0xpc3QgYSB3aGVyZQogIGlzTGlzdCA6OiBhIC0+IEJvb2wKCmluc3RhbmNlIElzTGlzdCBhIHdoZXJlCiAgaXNMaXN0IHggPSBGYWxzZQoKaW5zdGFuY2UgSXNMaXN0IFthXSB3aGVyZQogIGlzTGlzdCB4ID0gVHJ1ZQoKaXNMaXN0MiA6OiAoSXNMaXN0IGEpID0+IGEgLT4gQm9vbAppc0xpc3QyID0gaXNMaXN0CgptYWluID0gZG8KICBwcmludCAoaXNMaXN0ICg0MiA6OiBJbnQpKQogIHByaW50IChpc0xpc3QgWzQyIDo6IEludF0pCiAgcHJpbnQgKGlzTGlzdDIgKDQyIDo6IEludCkpCiAgcHJpbnQgKGlzTGlzdDIgWzQyIDo6IEludF0pCg==