Вы пропускаете [@bs.val]
в начале removeEventListener
при объявлении привязки.
[@bs.val]
external addEventListener: (string, unit => unit) => unit = "addEventListener";
[@bs.val]
external removeEventListener: (string, unit => unit) => unit =
"removeEventListener";
Иногда это трудно увидеть, потому что линтер всегда перемещает линии вокруг;)
Источник: я тоже сталкивался с этим несколько минут назад.