class_docstr: Singleton builder.
  
  Example:
  
  from coremltools.converters.mil.mil import Builder as mb
  from coremltools.converters.mil.mil import Program, Function
  
  prog = Program()
  func_inputs = {"x": mb.placeholder(_shape=[2,3]),
                 "y": mb.placeholder(_shape=[2,3])}
  with Function(func_inputs) as ssa_fun:
    x, y = ssa_fun.inputs['x'], ssa_fun.inputs['x']
    res_var = mb.add(x=x, y=y) # created within ssa_fun block
    ssa_fun.set_outputs([res_var])
  prog.add_function("main", ssa_fun)
code: def _add_const(cls, val, name, before_op):
      if not is_python_value(val):
          raise ValueError("Cannot add const {}".format(val))
      if any_symbolic(val):
          msg = (
              "Python native vals (list, tuple), np.array that are"
              + "operation inputs cannot have symbolic values. Consider feeding"
              + "symbolic shape in through placeholder and use mb.shape() "
              + "operator. Input {}: {}"
          )
          raise ValueError(msg.format(name, val))
      const_name = cls._get_free_name(name)
      mode = get_const_mode(val)
      logging.debug("Adding const op '{}'".format(const_name))
      output_var = cls.const(
          mode=mode, val=val, name=const_name, before_op=before_op
      )
      return output_var
  
imports: from collections import defaultdict
  import copy
  import logging
  import six
  import numbers
  import numpy
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic
  from .None import curr_block, Program, Function, Placeholder, is_internal_input
  from .input_type import _InputType, InternalStringInputType, InternalScalarOrTensorInputType, ScalarOrTensorInputType, TupleInputType, InputSpec, InternalInputType, PyFunctionInputType
  from .var import InternalVar, Var
  from .ops import defs
label_desc: Use image node_id 3 for calling the Builder obj's underlying member method code with example usage: obj._add_const(cls, val, name, before_op) and returns: output_var