A potential solution, at least in terms of producing the desired output, is the base R function alist: > alist(1+2, "a", rnorm(3)) [[1]] 1 + 2 [[2]] [1] "a" [[3]] rnorm(3) > str(alist(1+2, "a", rnorm(3))) List of 3 $ : language 1 + 2 $ : chr "a" $ : language rnorm(3) luke [[alternative HTML version deleted]]