Some of the options accept or expect multiple inputs. ProgramOptions is more recently designed and handles this more gracefully by accepting a list, tuple, or individual string argument whenever it makes sense. Linker requires the argument to be a list of strings for some options (example: ptxas options)
migrate linker to the program logic