[Haskell-beginners] calling polymorphic function in Selenium
question
Brent Yorgey
byorgey at seas.upenn.edu
Thu Apr 15 15:14:43 EDT 2010
On Sun, Apr 04, 2010 at 09:25:16PM -0400, MH wrote:
> I am running the following code that is using Selenium. If you look at
> the function "start", you will see that the return type of the
> function is polymorphic. Now in main function, I call start function
> to get selenium IO monad and sequentially call selenium commands
> (open, doCommand etc...). The problem that I have here is, while I can
> call all Selenium commands with signature (String -> Selenium
> String), I can't call commands with signature (String -> Selenium
> Bool). As I understand it, even though "start" function shall return
> IO (Selenium a -> IO (Either String a)), it actually return IO
> (Selenium String -> IO (Either String String)).
Hmm, I must confess that I don't understand exactly what is going on
here. One thing to try is to give an explicit type annotation at
start's call site, something like
> main = do
> (selenium :: Selenium a -> IO (Either String a)) <- start "http://www.google.com"
> selenium $ open "/"
> selenium $ doCommand SWindowMaximize []
> selenium $ typeText (Name "q") "stuff"
> selenium $ clickAndWait (Name "btnG")
> return selenium
Does that help?
-Brent
More information about the Beginners
mailing list