* @param options
   * @return OutputFileStream
   */
  public static OutputFileStream openOutputFile(String filename, Cons options) {
    { OutputFileStream stream = OutputFileStream.newOutputFileStream(null);
      PropertyList theoptions = Stella_Object.vetOptions(options, Cons.list$(Cons.cons(Stella.KWD_IF_EXISTS, Cons.cons(Stella.KWD_IF_EXISTS_ACTION, Cons.cons(Stella.KWD_IF_NOT_EXISTS, Cons.cons(Stella.KWD_IF_NOT_EXISTS_ACTION, Cons.cons(Stella.NIL, Stella.NIL)))))));

      { Stella_Object temp000 = theoptions.lookup(Stella.KWD_IF_EXISTS);

        { Keyword chooseValue000 = null;

          if (temp000 != null) {
            chooseValue000 = ((Keyword)(temp000));
          }
          else {
            { Stella_Object temp001 = theoptions.lookup(Stella.KWD_IF_EXISTS_ACTION);

              chooseValue000 = ((temp001 != null) ? ((Keyword)(temp001)) : Stella.KWD_SUPERSEDE);
            }
          }
          stream.ifExistsAction = chooseValue000;
        }
      }
      { Stella_Object temp002 = theoptions.lookup(Stella.KWD_IF_NOT_EXISTS);

        { Keyword chooseValue001 = null;

          if (temp002 != null) {
            chooseValue001 = ((Keyword)(temp002));
          }
          else {
            { Stella_Object temp003 = theoptions.lookup(Stella.KWD_IF_NOT_EXISTS_ACTION);

              chooseValue001 = ((temp003 != null) ? ((Keyword)(temp003)) : Stella.KWD_CREATE);
            }
          }
          stream.ifNotExistsAction = chooseValue001;
        }
      }
      stream.filename = filename;
      OutputFileStream.initializeFileOutputStream(stream);
      if (stream.nativeStream == null) {
        Stream.closeStream(stream);
        stream = null;
      }
      return (stream);
    }
  }