private Expression ifStatement( List<Expression> args, String caller ) {
      
      if ( args.size() != 3 ) {
         System.err.println("if expected 3 arguments and got " + args.size() );
         System.exit(1);
      }
      
      // if it's false return the second, any other value gets the first
      if ( args.get(0).show(defSubst, caller).compareTo("#f") == 0) {
         return args.get(2).eval(defSubst, caller);
      } else {
         return args.get(1).eval(defSubst, caller);
      }
   }