{-# LANGUAGE FlexibleInstances, OverlappingInstances #-}
class IsFunction a where
instance IsFunction (a -> b) where
isFunction _ = True
instance IsFunction a where
isFunction _ = False
main
= print (isFunction
(+)) >> print (isFunction
"0")
ey0jIExBTkdVQUdFIEZsZXhpYmxlSW5zdGFuY2VzLCBPdmVybGFwcGluZ0luc3RhbmNlcyAjLX0KCmNsYXNzIElzRnVuY3Rpb24gYSB3aGVyZQoJaXNGdW5jdGlvbiA6OiBhIC0+IEJvb2wKCmluc3RhbmNlIElzRnVuY3Rpb24gKGEgLT4gYikgd2hlcmUKCWlzRnVuY3Rpb24gXyA9IFRydWUKCmluc3RhbmNlIElzRnVuY3Rpb24gYSB3aGVyZQoJaXNGdW5jdGlvbiBfID0gRmFsc2UKCm1haW4gPSBwcmludCAoaXNGdW5jdGlvbiAoKykpID4+IHByaW50IChpc0Z1bmN0aW9uICIwIik=