
Hello folks, just a quickie here and would appreciate any help... In this expression: instance OBSERVATIONS Drinkability WaterWell Volunteer where observe (Drinkability waterWell) volunteer = volunteer {vReport = if (odorQuale (perceive (Odor waterWell) volunteer) == True && clarityQuale (perceive (Clarity waterWell) volunteer) == True && fullnessQuale (perceive (Fullness waterWell) volunteer) == True) then (if (honesty) then "drinkable" else "undrinkable") else (if (honesty) then "undrinkable" else "drinkable")} I get the following error: Couldn't match expected type `Bool' against inferred type `Volunteer -> Bool' In the expression: honesty In the expression: (if honesty then "drinkable" else "undrinkable") In the `vReport' field of a record It is worth mention that Volunteer id defined as follows: data Volunteer = Volunteer {vid:: Id, vloc:: Id, odorQuale:: Bool, clarityQuale:: Bool, fullnessQuale:: Bool, vQuale:: Bool, vReputation:: Float, honesty:: Bool, vReport:: Report} deriving Show Where Report is defined as: type Report = String I understand that the vReport field is not receiving a String as it should, but I have completely failed in knowing why! I just think the nesting of the if statements is correct but wonder why is it not working. What is the correct code to do what I intend from the abofe nonfunctioning if statements? cheers, m