More work on infix constructors

```ocaml
# type 'a seq = Nil | :@ of 'a * 'a seq;;
type 'a seq = Nil | :@ of 'a * 'a seq
# 1 :@ 2 :@ 3 :@ Nil;;
- : int seq = :@ (1, :@ (2, :@ (3, Nil)))
```