Recursively type check assignments to nested tupples/lists