nodes: 0, module; 1, function_definition; 2, function_name:to_fp; 3, parameters; 4, block; 5, identifier:self; 6, identifier:sort; 7, default_parameter; 8, expression_statement; 9, if_statement; 10, return_statement; 11, identifier:rm; 12, None; 13, comment:"""
          Convert this float to a different sort
  
          :param sort:    The sort to convert to
          :param rm:      Optional: The rounding mode to use
          :return:        An FP AST
          """; 14, comparison_operator:rm is None; 15, block; 16, call; 17, identifier:rm; 18, None; 19, expression_statement; 20, identifier:fpToFP; 21, argument_list; 22, assignment; 23, identifier:rm; 24, identifier:self; 25, identifier:sort; 26, identifier:rm; 27, call; 28, attribute; 29, argument_list; 30, attribute; 31, identifier:default; 32, identifier:fp; 33, identifier:RM
code: def to_fp(self, sort, rm=None):
          """
          Convert this float to a different sort
  
          :param sort:    The sort to convert to
          :param rm:      Optional: The rounding mode to use
          :return:        An FP AST
          """
          if rm is None:
              rm = fp.RM.default()
  
          return fpToFP(rm, self, sort)