Apologies - sent too soon - code edited belowDear All,I am having problems writing a polymorphic function.I have a type that has two constructors:data Arg = IndArg {evi::Evi, t1::Treatment, t2::Treatment, out::Outcome, dir::Direction}| MetaArg {target::EviType}deriving (Show)I have a function checks for conflict:checkConflict :: Arg -> Arg -> BoolcheckConflict a b = if t1 a == t1 b && t2 a == t2 b && dir a /= dir b then Trueelse FalseHowever, I can't make this work with both types of Argument - if I pass it MetaArg, it raises an error.In another language, I would write something like:checkConflict(ArgA,ArgB):if type(ArgA) == IndArg:<do this>elif type(ArgA) == MetaArg:<do other>Any thoughts would be welcomed.BW,Matt
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners