(define cons (native_function " Proc.new() do |arguments, interpreter| arg_1 = interpreter.evaluate(arguments[0]) arg_2 = interpreter.evaluate(arguments[1]).dup if arg_2.is_a? Array arg_2.unshift arg_1 else [arg_1, arg_2] end end "))