 ;; - Fontify types in struct definitions
 ;; - Fontify unicode in method receiver types, array/slice/map types
 ;;   and everywhere where type-name is being used
+
+(eval-when-compile
+  (require 'diff-mode)
+  (require 'cl))
 
 (defconst go-dangling-operators-regexp "[^-]-\\|[^+]\\+\\|[/*&><.=|^]")
 (defconst gofmt-stdin-tag "<standard input>")

          (setq line (format "%s \"%s\"" as import))
        (setq line (format "\"%s\"" import)))

      (beginning-of-buffer)
      (if (re-search-forward (concat "^// import " line "$") nil t)
          (uncomment-region (line-beginning-position) (line-end-position))
        (case (go-goto-imports)

    (setq pos (point))
    (beginning-of-line)
    (if (or (looking-at "^[[:word:]]+:$") (looking-at "^[[:space:]]*\\(case .+\\|default\\):"))
        (progn (forward-line -1)
               (end-of-line))
      (goto-char pos))
    (if (/= start-pos (point))
