I feel like as you start to support anonymous procs that the typeclass syntax using |(as in float|int) will start to collide, if not unworkably at least confusing humans. In the old UUCP days people used a notation referred to as a "bang path" with exclamation markswhich had a similar semantic of firstA ! thenB ! finallyC.