fix make-if typo and add lazy evaluation