let main () : unit Deferred.t =
let card = {
suit = Spades;
rank = Ace;
} in
(* card -> string *)
let s = string_of_card card in
print_endline s;
(* card -> string -> card *)
(match card_of_string s with
| Some card' -> print_endline (string_of_card card')
| None -> failwith "impossible");
return ()