
Hi - I have another question. I am still working on a soccer server and thought it would be neat to create command objects that had a "toString" method. Then, I was going to keep a list of these command objects and at the right time stringify them and send them to the server. So I created a class with a toString method: class ServerCommandClass a where toString :: a -> String And then a few instances: -- dash command data DashCommand = DashCommand { dashpower :: Double } instance ServerCommandClass DashCommand where toString c = "(dash " ++ show (dashpower c) ++ ")\n" -- move command data MoveCommand = MoveCommand { x :: Double, y :: Double } instance ServerCommandClass MoveCommand where toString c = "(move " ++ show (x c) ++ " " ++ show (y c) ++ ")\n" The problem is, I am not quite sure how to describe a *list* of command objects where the list could have both DashCommands and MoveCommands in it. Ideally the list could contain both, and then for each item in the list I could call the toString method. I was reading Simon Thompson's Haskell: The Craft of Functional Programming and I read that Haskell 98 does not support dynamic binding, which (it seems) is what I'm trying to do. Does anyone have a suggestion on an alternative approach? thanks, -andrew