Thanks for the reply - since you mentioned that it should work I figured there must’ve been a mistake somewhere else. Looking closer I realised that when I copied & pasted the definition for (<) to the rest of the functions and the problem actually occurred at ... max a b = max (size a) (size b) min a b = min (size a) (size b) … which has return type of Double where it should be Cycle. Regards, Nicolaas On 11 Oct 2014, at 15:39, Brandon Allbery <allbery.b@gmail.com> wrote:
On Sat, Oct 11, 2014 at 9:02 AM, Nicolaas du Preez <njdupreez@yahoo.com> wrote: data Cycle = Cycle { name :: String, size :: Double } deriving (Eq, Show)
instance Ord Cycle where (<) a b = (<) (size a) (size b) -- problem statement! …
How can I specify that, on the right-hand side of the problem statement, I refer to (<) :: Double -> Double -> Bool instead of (<) :: Cycle -> Cycle -> Bool?
That should be automatic, since it knows that size :: Cycle -> Double and therefore should use the Double instance. Can you provide a minimal full example and full error message?
-- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners