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