Entry tags:
id да не id
Приведите пример таких объявлений типа данных с конструктором данных T и сигнатуры функции f, что реализация
f (T x) = T xпроходила бы проверку типов, a
f x = xнет.
f (T x) = T xпроходила бы проверку типов, a
f x = xнет.
no subject
data T = T (IO ())
instance Eq T where { _ == _ = True }
f = id
Теперь:
id $ putStrLn "abc" == putStrLn "abc" -- не компилируется
id $ T (putStrLn "abc") == T (putStrLn "abc") -- компилируется
no subject
f x = x
какf x == x
и задача кардинально изменила свой смысл. Поэтому и написалinstance Eq