# 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). ```