cnf function completed with two exceptions:
 * distr cannot take more than two arguments
 * tests do not work (reason unkown)