nsplit : ('a -> 'b * 'a) -> 'c list -> 'a -> 'b list * 'a
nsplit d l (f(x1,f(x2,...f(xn,y))))
([x1;...;xk],f(x(k+1),...f(xn,y))
# nsplit dest_conj [1;2;3] `a /\ b /\ c /\ d /\ e /\ f`;; val it : term list * term = ([`a`; `b`; `c`], `d /\ e /\ f`)