A card game in Standard ML using custom datatypes and pattern matching