input: 
  def basic_version_control(code_lines: List[str]) -> VersionControl:
      """
      Create a basic version control system that initializes with the given code lines.
      The system should allow committing changes and restoring to previous versions.
      >>> basic_version_control(['print("Hello")', 'print("World")'])
      <__main__.VersionControl object at 0x...>
      """
  
output:     
      class VersionControl:
          def __init__(self, code_lines: List[str]):
              self.code_lines = code_lines
              self.history = [code_lines.copy()]
              self.current_version = 0
  
          def commit(self, new_code_lines: List[str]):
              self.code_lines = new_code_lines
              self.history.append(new_code_lines.copy())
              self.current_version += 1
  
          def restore(self, version: int):
              if version < 0 or version > self.current_version:
                  raise ValueError("Invalid version number")
              self.code_lines = self.history[version].copy()
              self.current_version = version
  
      return VersionControl(code_lines)
  