Private user defined functions on dict?

I’m using: SWI-Prolog version 8.3.9-1

I want the code to: prevent access to non-exported user defined functions on a dict D where the user defined functions are defined in a module named D.

But what I’m getting is: after use_module for D (with an empty export list) while in user module, all user defined functions on D are accessible.

My code looks like this:

:- module(udf,[example/1]).
	
example(udf{}).

Udf.f() := 17.

?- ['/Users/rgb/Desktop/udf 1.pl'].
true.

?- example(Udf),X=Udf.f().
Udf = udf{},
X = 17.

?- 

Fix: do not use tag as module name. Then udfs are public/private as expected.