
Edward, Daniel, thanks.
On Friday 21 January 2011 00:35:02, Sean Charles wrote: wiiOpen :: String -> IO (Maybe (Ptr Word8)) wiiOpen wid = do ? ?handle <- withCString wid c_wiimote_open ? ?case handle of ? ? ?nullPtr -> return Nothing ? ? ?handle -> return (Just handle) Unless nullPtr is a macro that gets replaced with a literal by the preprocessor, that won't do what you want. "nullPtr" is a generic name and matches everything, so you'll always take the first branch (with -Wall, ghc should warn about overlapping patterns in that case).
Daniel, you have confused me. In my RWH book there is a test from the PCRE example of nullPtr == x, so I just did my code using a case instead, I am sure it's correct!?!?!? If I run my program with the Wiimote off, it prints FAIL and if I press the red sync. button it then prints out OK and the memory address of the allocated structure so it surely must be workng as I expected? Anybody? Edward, I am going to apply your comments over the weekend and see if I can truly understand them. I get the rough idea. Thanks guys. Sean.