GHCi игнорирует тип подписи
Prelude> let myprint = putStrLn . show
Prelude> :t myprint
myprint :: () -> IO ()
ОК, ничего необычного здесь. Полагаю, что по умолчанию GHCi использует правила по умолчанию ...
Prelude> let myprint = (putStrLn . show) :: Show x => x -> IO ()
Prelude> :t myprint
myprint :: () -> IO ()
Что это за колдовство?? Вы в упоригнорирование мое объявление типа ?! О_О
Есть ли способ убедить GHCi сделать то, что я на самом деле собирался?