let rec chop pool = function

  | TVariable v ->
      v

  | TTerm term ->
      let v =
        UnionFind.fresh 
          { (* TEMPORARY invoquer une fonction de c'reation dans Unifier? *)
            structure = Some (map (chop pool) term);
            rank = pool.number;
            mark = Mark.none;
            kind = Flexible;
            name = None;
            pos  = None;
            var = None
          } in
        register pool v;
        v