DEFINE y == [dup cons] swap concat dup cons i;
fac == [[pop null] [pop succ] [[dup pred] dip i *] ifte] y.