Why LSTM is implemented repeatedly for every front-end?

Hi, I notice that LSTM is implemented repeatedly for every front-end(Keras, ONNX, etc) and the implementations look similar to each other. I’m just wondering if we can make LSTM an Op in relay, or at least use unified implementation across different front-ends? I understand that different front-end may have slightly different schema definition for LSTM, but ONNX has managed to provide a LSTM Op, so I think it’s reasonable to do so.
And it’s the same for other high level but popular Ops like GRU, Attension, etc. I’m relatively new to TVM, hope I don’t misunderstand the codes…