There are some binding considerations here. This works, but is subject to the quirky nature of Rebol 2's 'protect
function and contexts:
new: func [
id' [integer!]
text' [string!]
/local object
][
object: make self []
object/id: id'
object/text: text'
protect bind [ id type text ] 'object
object
]