    (map? arg)
    
    (not (= :subcat (last path)))
+
    (not (= :italiano (last path)))
    (not (= :français (last path)))
    (not (= :english (last path)))
+   (not (= :espanol (last path)))
    
    (not (= :none (:head arg :none)))
    (not (= :none (:comp arg :none)))

   (not (= :subcat (last path)))
   (not (= :italiano (last path)))
   (not (= :english (last path)))
   (not (= :français (last path)))
   
   (not (= :none (:head arg :none)))

   
   (or
    (and
     (not (= :none (fs/get-in arg '(:head :english) :none)))
     (not (= :none (fs/get-in arg '(:comp :english) :none))))
    (and
     (not (= :none (fs/get-in arg '(:head :espanol) :none)))
     (not (= :none (fs/get-in arg '(:comp :espanol) :none))))
    (and
     (not (= :none (fs/get-in arg '(:head :français) :none)))
     (not (= :none (fs/get-in arg '(:comp :français) :none))))
    (and
     (not (= :none (fs/get-in arg '(:head :italiano) :none)))
     (not (= :none (fs/get-in arg '(:comp :italiano) :none)))))
   
   (or
    (and (fs/ref= arg '(:head :italiano) '(:italiano :a))
         (fs/ref= arg '(:comp :italiano) '(:italiano :b)))

    (and (fs/ref= arg '(:head :français) '(:français :a))
         (fs/ref= arg '(:comp :français) '(:français :b)))

    (and (fs/ref= arg '(:head :espanol) '(:espanol :a))
         (fs/ref= arg '(:comp :espanol) '(:espanol :b)))

    (and (fs/ref= arg '(:head :english) '(:english :a))
         (fs/ref= arg '(:comp :english) '(:english :b)))))]
    retval))
