Почему чтение не может выводить правильный тип?
В Haskell я могу сделать значение Haskell из строки сread
.
Prelude> read "1" + 3
4
я могу использоватьfst
чтобы получить первый элемент
Prelude> fst (1,2)
1
Тем не менее, я получаю ошибку, когда я объединяюread
а такжеfst
чтобы получить первый элемент:
Prelude> fst (read "(1,2)")
<interactive>:20:6:
Could not deduce (Read b0) arising from a use of ‘read’
from the context (Read a)
bound by the inferred type of it :: Read a => a
at <interactive>:20:1-18
The type variable ‘b0’ is ambiguous
В чем проблема?