
I've been playing with my musical interval problem from before, and I got a little further, but I came up with a problem. I have two types-- Interval and BasicInterval. Interval has 12 constructors, Unison, MinorSecond, MajorSecond, MinorThird, et cetera. BasicInterval has 8 constructors, BasicUnison, Second, Third, Fourth, and so on. I want to be able to convert between them somewhat; I have function interToBasic, which at the moment looks like: interToBasic :: Interval -> BasicInterval interToBasic a = if (b == 1 || b == 2) then Second else if (b == 3 || b == 4) then Third .. where b = fromEnum a What I wanted to do, and figure is probably doable, but I can't seem to find it, is to say something like case (fromEnum a) of 1 || 2 -> Second 3 || 4 -> Third .. Is this doable? If so, what's the syntax?