# In reply to @aintea "nope because there still": create a scoped DSL let foo = pipe: expr0 |> expr1 |> expr2 # And implement your rules via macro