# Lesson XV
Each ink keeps its own nature. The brush must not pretend otherwise.
## Try
```prolog
% ?- E = kernel,
% run(E, [push(real(2.5)), push(real(1.5)), add], [], Stack).
% Stack = [real(4.0)].
% ?- E = kernel,
% infer(E, [push(real(1.0)), push(real(1.0)), eq], Scheme).
% Scheme = scheme([], effect(S, [bool|S])).
% ?- E = kernel,
% run(E, [push(real(2.5)), push(int(1)), add], [], Stack).
% false.
```
## Lesson
```prolog
unpack(real, real(Real), Real) :-
float(Real),
!.
pack(real, Payload, real(Payload)) :-
float(Payload),
!.
lit(_Env, real(Real), real) :-
float(Real).
supports(real, numeric).
supports(real, equatable).
```