Hi, 

Continuing on from my previous question about powerset using filterM - Thanks to Alexey anChaddaï. 

filterM is implemented as below - 

----
filterM _ []     =  return []
filterM p (x:xs) =  do
   flg <- p x
   ys  <- filterM p xs
   return (if flg then x:ys else ys)
---
I still don't quite understand how 'flg' being a boolean [] is used in the last 'if statement' of implementation because when I try to do the same thing outside in GHCi it fails miserably even though I am casting it to [Int] - 

--
return (if [True, False] then "4" else "3")::[Int]
--

Offtopic : Also if someone can explain how do I reply to individual mails/responses to my queries because I only get a digest on my gmail and there is no way to isolate and reply to individual mails either this list's page or from digest.

Thanks,
Shishir