first pass type checking/promotion vectors

will break the hell out of what little tuple stuff I had in there