changed ifeq to utilize mlet* for let bindings in mupl