# Lesson XII
The brush does not disturb what has already become clear.
## Try
```prolog
% ?- E = kernel, run(E, [push(int(3)), push(int(2)), gt], [], Stack).
% Stack = [bool(true)].
% ?- E = kernel, infer(E, [push(bool(true)), push(bool(false)), eq], Effect).
% Effect = effect([], [bool]).
% ?- E = kernel, infer(E, [push(bool(true)), push(bool(false)), add], Effect).
% false.
```
## Lesson
```prolog
word(kernel, eq, [A::int, B::int|S] -- [Bool::bool|S], (A == B -> Bool = true ; Bool = false)).
word(kernel, eq, [A::bool, B::bool|S] -- [Bool::bool|S], (A == B -> Bool = true ; Bool = false)).
word(kernel, lt, [A::int, B::int|S] -- [Bool::bool|S], (B < A -> Bool = true ; Bool = false)).
word(kernel, gt, [A::int, B::int|S] -- [Bool::bool|S], (B > A -> Bool = true ; Bool = false)).
unpack(bool, bool(Bool), Bool) :-
( Bool == true ; Bool == false ).
pack(bool, Payload, bool(Payload)) :-
( Payload == true ; Payload == false ).
lit(_Env, bool(Bool), bool) :-
( Bool == true ; Bool == false ).
```