Fixed a bug in lazy let that raises an error when there are no
definitions.
Added macro support; changed def to defun.