def form_type(self):
    if (len(self.given) == 1):
        rhs = self.given[0]
    else:
        rhs = TypeTuple(self.given)
    t = rhs
    for type in reversed(self.taken):
        t = TypeArrow(type, t)
    return t
def form_type(self):
    if (len(self.given) == 1):
        rhs = self.given[0]
    else:
        rhs = TypeTuple(self.given)
    t = rhs
    for type in reversed(self.taken):
        t = TypeArrow(type, t)
    return t