let rec and_list = function
  lx -> if is_empty_list (lx)
          then true
          else (function x, y -> x & y) (head (lx), and_list (tail (lx)))