(cons cat (cons other-cat nil))
Как можно заметить, отсутствие коробки с котом не является ни коробкой, ни котом, но одновременно и тем, и тем.
Кроме того, наличие отсутствия кота по очевидным причинам определяется только в рантайме.
Ну и вдобавок - разбить представленных котов на множества можно по столь угодно большому количеству параметров, что делать это заранее - бесполезно, это просто отнимает время которого и так всегда не хватает.
К тому же, единственное, что нам и правда важно, так это то, что мы посадили котов в коробки, или скорее даже то, что они там сейчас сидят.
Отсюда:
Третья Теорема Лавсана (о бесполезности статической типизации)
Статическая типизация не добавляет ничего действительно полезного и только лишь отбирает время.
Дискач.