- It's more extensible: You can defines functions over standard data types anywhere, you can't define methods for standard data types anywhere,
- It's more flexible on input types: You can deal with sum types without polluting your classes with flags.
- It's more flexible on execution order: You can shortcut things, you can define your operator in a way that it runs some things twice, you can jump over some function (if the typing allows).
- It's more composable: You can intercalate this with other operators.
- It's data: You can input the sequence into a function, rewrite it and execute the new sequence, interpret it and create some documentation, run some offline verification without executing the code, etc.