以下是 GHCi 的简短记录:
Prelude> :t read
read :: Read a => String -> a
Prelude> :t show
show :: Show a => a -> String
Prelude> :t show.read
show.read :: String -> String
Prelude> (show.read) "whales"
"*** Exception: Prelude.read: no parse
当我作曲时show
,read
我只能假设 GHC 选择了一些既能Read
也Show
能成为“中间”类型的任意类型。
它是如何选择这种类型的,我有什么方法可以找出它是什么?