Package: haskell-mode Version: 2.3-1 Severity: minor Tags: patch haskell-mode places characters that form Haskell symbols (e.g.: "+" and "=") into the Emacs character class "_". According to the Emacs documentation, this class is meant to be used for symbols that may be part of identifiers even though they are not reserved words. This means that in the code
f x = a<+>b the string "a<+>b" is considered to be a single lexical element. A consequence of this is that "forward-sexp" will move over the whole thing instead of stopping at "<+>". After looking over the Emacs documentation, it seems to me that these characters more properly belong in the character class ".", which seems to be used for operator symbols in other languages. Changing this in a local copy of haskell-mode produces the expected results with the above code (M-C-f stops at the operator and at "b"). I'm a bit worried that there might be side effects I haven't noticed yet; some of the other haskell-mode code seems to use the syntax table in its processing. Daniel -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.22-3-686 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages haskell-mode depends on: ii emacs [emacsen] 22.1+1-2.3 The GNU Emacs editor (metapackage) ii emacs21 [emacsen] 21.4a+1-5.3 The GNU Emacs editor ii emacs22-gtk [emacsen] 22.1+1-2.3 The GNU Emacs editor (with GTK use Versions of packages haskell-mode recommends: ii ghc6 6.6.1-2 GHC - the Glasgow Haskell Compilat ii hugs 98.200609.21-5 A Haskell 98 interpreter -- no debconf information
--- haskell-mode.el.orig 2008-01-01 11:49:01.000000000 -0800 +++ haskell-mode.el 2008-01-01 12:40:39.000000000 -0800 @@ -351,13 +351,13 @@ (modify-syntax-entry ?\` "$`" table) (modify-syntax-entry ?\\ "\\" table) (mapcar (lambda (x) - (modify-syntax-entry x "_" table)) + (modify-syntax-entry x "." table)) ;; Some of these are actually OK by default. "!#$%&*+./:<=>[EMAIL PROTECTED]|~") (unless (featurep 'mule) ;; Non-ASCII syntax should be OK, at least in Emacs. (mapcar (lambda (x) - (modify-syntax-entry x "_" table)) + (modify-syntax-entry x "." table)) (concat "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿" "×÷")) (mapcar (lambda (x)