anchor.diff:    (make-monad-term-expression 1 2 ':left-lcb ':right-lcb)
     :documentation "Monadic sequence")
   
  +(define-sw-parser-rule :LEFT-ARROW ()
  +  (:anyof "<-" "\\_leftarrow"))
  +
   (define-sw-parser-rule :MONAD-BINDING-EXPRESSION ()
  -  (:tuple "{" (1 :PATTERN) "<-" (2 :EXPRESSION) ";" (3 :MONAD-STMT-LIST) "}")
  +  (:tuple "{" (1 :PATTERN) :LEFT-ARROW (2 :EXPRESSION) ";" (3 :MONAD-STMT-LIST) "}")
     (make-monad-binding-expression 1 2 3 ':left-lcb ':right-lcb)
     :documentation "Monadic binding")
   
   (define-sw-parser-rule :MONAD-STMT-LIST ()
     (:anyof
  -   ((:tuple (1 :EXPRESSION))                                             1)
  -   ((:tuple (1 :EXPRESSION) ";" (2 :MONAD-STMT-LIST))                    (make-monad-term-expression    1 2   ':left-lcb ':right-lcb))
  -   ((:tuple (1 :PATTERN) "<-" (2 :EXPRESSION) ";" (3 :MONAD-STMT-LIST))  (make-monad-binding-expression 1 2 3 ':left-lcb ':right-lcb))
  +   ((:tuple (1 :EXPRESSION)) 1)
  +   ((:tuple (1 :EXPRESSION) ";" (2 :MONAD-STMT-LIST))
  +    (make-monad-term-expression    1 2   ':left-lcb ':right-lcb))
  +   ((:tuple (1 :PATTERN) :LEFT-ARROW (2 :EXPRESSION) ";" (3 :MONAD-STMT-LIST))
  +    (make-monad-binding-expression 1 2 3 ':left-lcb ':right-lcb))
      ))
   
   ;;; ========================================================================
  
positive.code:    ((:tuple "\\_noteq")  (make-equality-fun '(:|NotEquals|) ':left-lcb ':right-lcb))
     ((:tuple "<<")  (make-fun '(:|RecordMerge|) (freshMetaTypeVar ':left-lcb ':right-lcb)
  			     ':left-lcb ':right-lcb))
     ))
  
  ;;; ------------------------------------------------------------------------
  
negative.code:    ))
  
  (define-sw-parser-rule :MAPS-TO ()
    (:tuple (:anyof "+->" "\\_mapsto")))
  
  ;;; ========================================================================
  ;;;  SC-SPEC-MORPH
  