 		      specware-keywords-regexp
 		      "\\)" symbol-sep)
 	      1 'font-lock-reserved-word-face 'keep)
-	"&" "=>" "=" "~" "<" ">" "->" "<-" ";" ":" "::" ":=" "|" "_"
-	"\\." "!" "*"			; no? "}" "{" "]" "\\[" "(" ")"
+	"&&" "||" "=>" "=" "~=" "~" "<" ">" "->" "<-" ";" ":" "::" ":=" "|" "_"
+	"+->" "\\." "!" "*" "<<"           ; no? "}" "{" "]" "\\[" "(" ")"
 ;;;	; Fixed width if % followed by 2 spaces, %%%, tab, or space--- or nothing
 ;;;	'("\\(%+\\(  \\|%%%\\|\t\\| \t\\| ---\\|---\\|$\\).*$\\)"
 ;;;	  1 font-lock-fixed-width-comment-face t)


(defconst symbol-sep "[^-_?a-z0-9A-Z]")

;; reserved symbols that introduce names:
(defconst specware-definition-introducing-words
  (regexp-opt '(
             ;; core specware:
                "axiom"
                "conjecture"
                "def"
                "diagram"
		"morphism"
                "op"
                "spec"
                "theorem"
                "type"
                "where"
             ;; accord extension:
                "espec"
                "espec-refinement"
		"interpretation"
		"ip-scheme"
                "ip-scheme-morphism"
                "mode"
                "module"
                "stad"
		)))

(defconst specware-definition-regexp
    (concat "\\(^\\|" symbol-sep "\\)\\("

      "end-step"
      "end-while"
      "end-with"
      "espec"
      "espec-refinement"
      "final"
      "guard"
      "initial"
      "interpretation"
      "ip-scheme"
      "ip-scheme-morphism"
      "mode"
      "module"
      "morphism"
      "spec"
      "nodes"
      "prog"
      "progmap"
      "specmap"
      "stad"
      "step"
      "when"
      "while"
      ))

(defconst specware-keywords-regexp
