Features to be done:

`assert`
to assert a type of a symbol in a temporary environment, use it like `let`:

assert LIST EXP

LOLI-LIST, LOLI-OBJ => LOLI-OBJ

(assert ((SYM1 :TYPE-ID)
         (SYM2 :TYPE-ID)
         ...)
         EXP)

Redo the eval order, make it lazy-like
