The reduction rules seem kind of arbitrary to me. At that point why don't you just use combinators instead of defining a set of 5 ways their operator can be used?
See Barry’s post https://github.com/barry-jay-personal/blog/blob/main/2024-12... for more discussion.