[jhc] How newStablePtr return un-packable IO ()?