'Create a formula from either:
i. a `formula` object
ii. a sequence of `term` instances
iii. one `term`'

def __init__(self, termlist, namespace=default_namespace):

    self.__namespace = namespace
    if isinstance(termlist, Formula):
        self.terms = copy.copy(list(termlist.terms))
    elif isinstance(termlist, list):
        self.terms = termlist
    elif isinstance(termlist, Term):
        self.terms = [termlist]
    else:
        raise ValueError
    self._terms_changed()
