private Expression andStatement( List<Expression> args, String caller ) {
      
      // return true by default
      Expression result = new Value("#t");
      
      for( int i = 0; i < args.size(); ++i ) {
         
         result = args.get(i).eval(defSubst, caller);
         
         if ( result.show(defSubst, caller).compareTo("#f") == 0 ) {
            return new Value("#f");
         }
      }      
      return result;      
   }