# File lib/weights_and_max_depths.rb, line 93
  def initialize args
    user_args = args.user_args
    sz = user_args.size
    case sz
      when 1
        arg = user_args[0]
        case arg
          when Numeric
            @value = arg.to_f
          when Range
            @value = Utils::map(
              arg, 
              args.drp_instance.next_meta_codon
            )
          else 
            raise ArgumentError, 'when 1 arg given to weight, must be Numeric, or Range', caller
        end
      when 2
        rng = args[0] 
        func = args[1].to_sym
        if (rng.kind_of? Range) && (func.kind_of? Symbol)
          @value = Utils::map(
            rng, 
            args.drp_instance.next_meta_codon,
            func
          )
        else
          raise ArgumentError, 'weight args of wrong types'
        end
      else
      raise ArgumentError, "weight takes 1 or 2 args, #{sz} given"
    end # case user_args.size
  end