Допустим, вы пишете приложение на OCaml/F#/SML/Haskell и хотите сохранить данные в реляционной базе данных. Типы продуктов (записи и кортежи) легко сопоставить с отношениями, но как сопоставить типы вариантов с отношениями?
Чтобы быть конкретным, как бы вы сохранили тип, подобный следующему, в реляционной базе данных?
(* OCaml *)
type t =
| Foo
| Bar of string
| Baz of int * int * int