an effect-ts reimplementation in nvim lua