if x > y then x else y if x > y then print x if x > y then if y > z then print y else print x if x > y then if y > z then print y else print x if x > y then (if y > z then print y) else print x The above is a shift-reduce conflict. So is the following: match x with adsfkhlds -> | aklsdfjd salkf -> match y with kasjdhfklaf -> haksdflhjdalkf | ajklfjdas -> hakljdfhasl