let rec print_ICode (out: out_channel) (ic: instruction list) = match ic with
        []      ->  ()
      | i::is   ->  print_instruction i out; print_ICode out is