https://graphs.pythonprogramminghelp.com/3-outrageous-set-theory/