Eu quero ser capaz de capturar fatos como Bob was born in 2000e Bill's birthday is May 7th.
Nos dois exemplos, conhecemos apenas parte da data de nascimento da pessoa. Em um caso, sabemos apenas o ano; no outro caso, sabemos o mês e o dia, mas não o ano.
Como capturo essas informações?
Alguns exemplos de como isso pode funcionar:
Imagine uma biblioteca como datetime que permita que None nos campos represente incógnitas. Eu posso ter um código como o seguinte:
date_a = date(2000, 5, None)
date_b = date(2000, 6, None)
difference = date_b - date_a
assert difference.min.days == 1
assert difference.max.days == 60 # Or something close to 60.
assert equal(date_a, date_b) == False
date_c = date(2000, 5, None)
assert equal(date_a, date_c) == Maybe
Este é apenas um exemplo de como ele pode se comportar. Eu não necessariamente quero esse comportamento preciso.