
(PUT '|FNAME;=;2%B;1| '|SPADreplace| 'EQUAL) 

(SDEFUN |FNAME;=;2%B;1| ((|f1| (%)) (|f2| (%)) (% (|Boolean|)))
        (EQUAL |f1| |f2|)) 

(SDEFUN |FNAME;coerce;%Of;2| ((|f| (%)) (% (|OutputForm|)))
        (SPADCALL (SPADCALL |f| (QREFELT % 9)) (QREFELT % 11))) 

(PUT '|FNAME;coerce;%S;3| '|SPADreplace| '(XLAM (|f|) |f|)) 

(SDEFUN |FNAME;coerce;%S;3| ((|f| (%)) (% (|String|))) |f|) 

(PUT '|FNAME;coerce;S%;4| '|SPADreplace| '(XLAM (|s|) |s|)) 

(SDEFUN |FNAME;coerce;S%;4| ((|s| (|String|)) (% (%))) |s|) 

(PUT '|FNAME;filename;3S%;5| '|SPADreplace| '|make_fname|) 

(SDEFUN |FNAME;filename;3S%;5|
        ((|d| #1=(|String|)) (|n| #1#) (|e| #1#) (% (%)))
        (|make_fname| |d| |n| |e|)) 

(PUT '|FNAME;directory;%S;6| '|SPADreplace| '|file_directory|) 

(SDEFUN |FNAME;directory;%S;6| ((|f| (%)) (% (|String|)))
        (|file_directory| |f|)) 

(PUT '|FNAME;name;%S;7| '|SPADreplace| '|file_basename|) 

(SDEFUN |FNAME;name;%S;7| ((|f| (%)) (% (|String|))) (|file_basename| |f|)) 

(PUT '|FNAME;extension;%S;8| '|SPADreplace| '|file_extention|) 

(SDEFUN |FNAME;extension;%S;8| ((|f| (%)) (% (|String|)))
        (|file_extention| |f|)) 

(PUT '|FNAME;exists?;%B;9| '|SPADreplace| '|fnameExists?|) 

(SDEFUN |FNAME;exists?;%B;9| ((|f| (%)) (% (|Boolean|))) (|fnameExists?| |f|)) 

(PUT '|FNAME;readable?;%B;10| '|SPADreplace| '|fnameReadable?|) 

(SDEFUN |FNAME;readable?;%B;10| ((|f| (%)) (% (|Boolean|)))
        (|fnameReadable?| |f|)) 

(PUT '|FNAME;writable?;%B;11| '|SPADreplace| '|fnameWritable?|) 

(SDEFUN |FNAME;writable?;%B;11| ((|f| (%)) (% (|Boolean|)))
        (|fnameWritable?| |f|)) 

(PUT '|FNAME;new;3S%;12| '|SPADreplace| '|fnameNew|) 

(SDEFUN |FNAME;new;3S%;12| ((|d| #1=(|String|)) (|pref| #1#) (|e| #1#) (% (%)))
        (|fnameNew| |d| |pref| |e|)) 

(DECLAIM (NOTINLINE |FileName;|)) 

(DEFUN |FileName;| ()
  (SPROG ((|dv$| NIL) (% NIL) (|pv$| NIL))
         (PROGN
          (LETT |dv$| '(|FileName|))
          (LETT % (GETREFV 22))
          (QSETREFV % 0 |dv$|)
          (QSETREFV % 3 (LETT |pv$| (|buildPredVector| 0 0 NIL)))
          (|haddProp| |$ConstructorCache| '|FileName| NIL (CONS 1 %))
          (|stuffDomainSlots| %)
          (SETF |pv$| (QREFELT % 3))
          %))) 

(DEFUN |FileName| ()
  (SPROG NIL
         (PROG (#1=#:G13)
           (RETURN
            (COND
             ((LETT #1# (HGET |$ConstructorCache| '|FileName|))
              (|CDRwithIncrement| (CDAR #1#)))
             ('T
              (UNWIND-PROTECT
                  (PROG1
                      (CDDAR
                       (HPUT |$ConstructorCache| '|FileName|
                             (LIST (CONS NIL (CONS 1 (|FileName;|))))))
                    (LETT #1# T))
                (COND ((NOT #1#) (HREM |$ConstructorCache| '|FileName|)))))))))) 

(MAKEPROP '|FileName| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|Boolean|) |FNAME;=;2%B;1| (|String|)
              |FNAME;coerce;%S;3| (|OutputForm|) (0 . |coerce|)
              |FNAME;coerce;%Of;2| |FNAME;coerce;S%;4| |FNAME;filename;3S%;5|
              |FNAME;directory;%S;6| |FNAME;name;%S;7| |FNAME;extension;%S;8|
              |FNAME;exists?;%B;9| |FNAME;readable?;%B;10|
              |FNAME;writable?;%B;11| |FNAME;new;3S%;12|)
           '#(~= 5 |writable?| 11 |readable?| 16 |new| 21 |name| 28 |latex| 33
              |filename| 38 |extension| 45 |exists?| 50 |directory| 55 |coerce|
              60 = 75)
           'NIL
           (CONS (|makeByteWordVec2| 1 '(0 0 0 0))
                 (CONS '#(NIL |SetCategory&| NIL |BasicType&|)
                       (CONS
                        '#((|FileNameCategory|) (|SetCategory|)
                           (|CoercibleTo| 10) (|BasicType|))
                        (|makeByteWordVec2| 21
                                            '(1 8 10 0 11 2 0 6 0 0 1 1 0 6 0
                                              20 1 0 6 0 19 3 0 0 8 8 8 21 1 0
                                              8 0 16 1 0 8 0 1 3 0 0 8 8 8 14 1
                                              0 8 0 17 1 0 6 0 18 1 0 8 0 15 1
                                              0 10 0 12 1 0 8 0 9 1 0 0 8 13 2
                                              0 6 0 0 7)))))
           '|lookupComplete|)) 
