In case you are adressing me:

I have like two use cases already. One is bootstrapping the rational/1 function. Its done like this now in my system. It requires rational mode of (^)/2 since the exponent can be negative:

```
rational(F, R) :-
sys_float_mantissa(F, M),
sys_float_exponent(F, E),
sys_float_radix(F, B),
R is M*B^E.
```

I documented them as if they were predicates. But in my system as well as in some other Prolog systems, there is no difference between unary evaluable functions and deterministic predicates with mode (+,-) and number arguments:

```
?- F is pi, sys_float_mantissa(F,M).
F = 3.141592653589793,
M = 7074237752028440
?- M is sys_float_mantissa(pi).
M = 7074237752028440
```

That it is multiple predicates grew organically, since I only had mantissa and exponent first. But then radix joined the party as well.