class_docstr: Represents a ring domain. 
class_docstr_tok: ["Represents","a","ring","domain","."]
docstr: Generate a free module of rank ``rank`` over self.
  
  >>> from sympy.abc import x
  >>> from sympy import QQ
  >>> QQ.old_poly_ring(x).free_module(2)
  QQ[x]**2
docstr_tok: ["Generate","a","free","module","of","rank","``","rank","``","over","self",".",">",">",">","from","sympy.abc","import","x",">",">",">","from","sympy","import","QQ",">",">",">","QQ.old_poly_ring","(","x",")",".free_module","(","2",")","QQ","[","x","]","*","*","2"]
code: def free_module(self, rank):
      """
      Generate a free module of rank ``rank`` over self.
  
      >>> from sympy.abc import x
      >>> from sympy import QQ
      >>> QQ.old_poly_ring(x).free_module(2)
      QQ[x]**2
      """
      raise NotImplementedError
  
file_path: sympy/sympy/polys/domains/ring.py
imports: from sympy.polys.domains.domain import Domain
  from sympy.polys.polyerrors import ExactQuotientFailed, NotInvertible, NotReversible
  from sympy.utilities import public
label_desc: Use image node_id 11 for calling the Ring obj's underlying member method code with example usage: obj.free_module(rank) without return types