Je travaille dans le tutoriel Aeson de Artyom, et moi-même avons codé cet extrait:Comment le type est-il déduit dans cet extrait?
parseFoo (Object obj) = do
a <- case HM.lookup "a" obj of
Just x -> parseJSON x
Nothing -> fail "no field 'a'"
return a
J'ai remarqué que si je return True
, je reçois une erreur « référence ambiguë »:
No instance for (FromJSON t0) arising from a use of ‘parseJSON’
The type variable ‘t0’ is ambiguous
Note: there are several potential instances:
...
le type de cas non ambiguë est
parseFoo :: FromJSON b => Value -> Parser b
Ma question est, pourquoi (comment) ne a
besoin de la return
déclaration à déduire son type?