I am having some problem to use operators that define set-theoretical functions in some `.pl-file`

with `use_module`

.

To illustrate that we can take the following test.pl-file:

```
:- module(test, [
(:=)/2, op(699, xfx, :=),
op(598, xfy, ∪),
op(597, xfy, ∩)
]).
union_((A ∪ B), C, D) :- union_(A, B, X), union_(X, C, D).
union_(A, (B ∪ C), D) :- union_((A ∪ B), C, D).
union_(A, B, C) :- is_list(A), is_list(B), union(A, B, C).
intersection_((A ∪ B), C, D) :- intersection_(A, B, X), intersection_(X, C, D).
intersection_(A, (B ∪ C), D) :- intersection_((A ∪ B), C, D).
intersection_(A, B, C) :- intersection(A, B, C).
C := (A ∪ B) :- union_(A, B, C).
C := (A ∩ B) :- intersection_(A, B, C).
```

If I now define another file test2.pl with the following code:

```
:- module(test2,[test2/1]).
:-use_module(test).
test2(A) :- A := [1,2] ∪ [3,4].
```

it is not possible anymore to call something like that after `swipl test2.pl`

:

?- C := ([1,2] ∪ [3,4]).

ERROR: Syntax error: Operator expected

ERROR: C := ([1,2]

ERROR: ** here **

ERROR: ∪ [3,4]) .

If I uncomment the line `:- module(test2,[test2/1]).`

the call gives the desired result:

?- C := ([1,2] ∪ [3,4]).

C = [1, 2, 3, 4].

What is my error of understanding here? How can I give the `∪`

in test2 some sense and use `:- module(test2,[test2/1]).`

also?

Thanks for some quick reply!