:- module ml_lookup_switch_test. :- interface. :- type thing ---> thing1 ; thing2 ; nothing ; thing3 ; thing4. :- type category ---> cat1 ; cat2 ; nocat. :- func classify(category, thing) = category. :- implementation. classify(Cat0, Thing) = Cat :- ( ( Thing = thing1 ; Thing = thing2 ; Thing = thing3 ; Thing = thing4 ), ( ( Thing = thing1 ; Thing = thing2 ), Cat = cat1 ; ( Thing = thing3 ; Thing = thing4 ), Cat = cat2 ) ; Thing = nothing, Cat = Cat0 ).