Bryn Keller <[EMAIL PROTECTED]> writes: > Hi Max, Hello Bryn,
> Thanks for pointing this out. It's odd that I don't see that anywhere > in the docs at the HToolkit site: > http://htoolkit.sourceforge.net/doc/hsql/Database.HSQL.html but GHC > certainly believes it exists. However, this doesn't actually solve the > problem. Substituting toSqlValue for show in printRow' gives the same > compile error: > > Main.hs:22:18: > Ambiguous type variable `a' in the constraint: > `SqlBind a' arising from use of `getFieldValue' at Main.hs:22:18-30 > Probable fix: add a type signature that fixes these type variable(s) > > So, like with (show (read s)), we still can't use the function until > we've established a definite type for the value, not just a type > class. Yeah... Some more RTFSing shows that we have the getFieldValueType :: Statement -> String -> (SqlType, Bool) which allows us to write printRow stmt = do (id :: Int) <- getFieldValue stmt "ID" let (codeType, _) = getFieldValueType stmt "Code" codestr <- case codeType of SqlChar _ -> do (c :: String) <- getFieldValue stmt "Code" return (toSqlValue c) SqlInteger -> do (i :: Int) <- getFieldValue stmt "Code" return (toSqlValue i) -- etc for all SqlType data constructors putStrLn (unwords [show id, codestr]) At least it compiles. But it's ugly :-( -- WBR, Max Vasin. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe