There is only lift2 right now. It is probably possible to do this generically, so that there is one generic function lift deprecating lift2. This will likely involve using a recursive macro to implement it for a finite but arbitrary number of arguments. Quickcheck has done something similar.
[x] Generic lifting for a few low arities (say, up to 4)
22 resolves the most common practical concerns, but is far from a general solution. However, it appears that Rust's type system can not accomodate such a solution, until it gets variadic generics.
There is only
lift2
right now. It is probably possible to do this generically, so that there is one generic functionlift
deprecatinglift2
. This will likely involve using a recursive macro to implement it for a finite but arbitrary number of arguments. Quickcheck has done something similar.