[Haskell-beginners] confused by <-

Bryce Verdier bryceverdier at gmail.com
Thu Sep 27 23:37:37 CEST 2012


On 9/27/12 12:43 PM, Chaddaï Fouché wrote:
> On Thu, Sep 27, 2012 at 9:25 PM, Chaddaï Fouché
> <chaddai.fouche at gmail.com> wrote:
>>>     body <- try (simpleHttp "http://www.google.com")
>>>     case body of
>>>         Left (SomeException _) -> jsonToRepJson $ object ["response" .= ( show "ERROR: NO DATA FOR ONE REASON OR ANOTHER")]
>> I think that should work...
>>

Thank you for that Jedai! That looks MUCH MUCH cleaner than the :: 
GHandler ... type signature.

> Since the signature was made necessary by the ambiguity on which type
> of exception you wished to catch with your "try", using (SomeException
> _) in your pattern match should make that clear. By the way, why are
> you show()ing a String ? The only thing that does is adding quotes
> around it and escaping some characters, shouldn't you just use :
>
>>         Left (SomeException _) -> jsonToRepJson $ object ["response" .= "ERROR: NO DATA FOR ONE REASON OR ANOTHER"]
I was doing that because when I removed it, I got an error similar to this:
     Ambiguous type variable `a0' in the constraints:
       (Data.String.IsString a0)
         arising from the literal `"ERROR: "' at playhaven.hs:54:73-81
       (aeson-0.6.0.2:Data.Aeson.Types.Class.ToJSON a0)

which I was able to remove by throwing a show in there. If you know of a 
better way I would love to know about it.

Thanks again!
Bryce





More information about the Beginners mailing list