
I have the following function: northern_range:: Piece_type -> Int northern_range piece = case piece of Lance -> 11 Reverse_chariot -> 11 Vertical_mover -> 11 White_horse -> 11 Rook -> 11 Promoted_rook -> 11 Promoted_gold_general -> 11 Promoted_silver_general -> 11 Free_king -> 11 Promoted_phoenix -> 11 Flying_stag -> 11 Flying_ox -> 11 Whale -> 11 Dragon_king -> 11 Soaring_eagle -> 11 Bishop -> 0 Kylin -> 0 Lion -> 0 Promoted_kylin -> 0 Blind_tiger -> 0 Promoted_ferocious_leopard -> 0 Free_boar -> 0 Horned_falcon -> 0 _ -> 1 I'd prefer to write this as just three lines (one for each of the three resulting values), something like this: northern_range:: Piece_type -> Int northern_range piece = case piece of Lance, Reverse_chariot, Vertical_mover, etc. -> 11 Bishop, Kylin, etc. -> 0 _ -> 1 Is there some syntax to do this sort of thing? -- Colin Adams Preston Lancashire