reti.vim を使用したカプセル化

こんな感じ?

[ソース]

function! s:make()
    let self = {}
    
    let value = 0
    let self.set = reti#execute("let value = a:1", l:)
    let self.get = reti#lambda("value", l:)

    return self
endfunction

function! s:main()
    let data = s:make()
    let data2 = s:make()

    call data.set(10)
    call data2.set(42)

    echo data.get()
    echo data2.get()
endfunction
call s:main()

[出力]

10
42