Directly assigning the output of split() will indeed error out; turns out the issue is that split returns a string  while the DSL is specifically expecting a list. The two look the same when printed out, but are not interchangeable types.
tokenize() rather than split() returns a list, though be aware that these methods behave differently as noted in this article. The 3 samples below will work:
approver = input.tokenize(",")
Alternatively we can stick with split() and convert the output to a list this way:
approver = input.split(",") as Set
or you can construct your array manually:
approverList << it