Editing Haskell code blocks in Org mode in a dedicated buffer

Hi! The key bindings for exiting dedicated Haskell code block buffers in Org mode seem to be off.

What happened?

  1. Edit a Haskell code block in Org Mode using org-edit-special, which is usually bound to SPC m '.

  2. In the editing process, the keybindings are off. I quote:

    "Edit, then exit with C-c ' or abort with SPC w C-q"

    Usually, it is:

    "Edit, then exit with C-c C-c or abort with C-c C-k"

Usually, another way of exiting these buffers is using the evil keybindings: Z Z or Z Q. In this case, only Z Q works, because Z Z tries to save the buffer, which does not work, because it has no file name associated.

What did you expect to happen?

I expect that dedicated Haskell code block buffers have the same keybindings as, e.g., Python code block buffers (but really, it should be unified across all of them).

System information

generated  Oct 26, 2022 11:34:38
system     NixOS 22.11.20221025.03a00f6 (Raccoon) Linux 5.15.74 x86_64 x
emacs      28.2 ~/.emacs.d/
doom       3.0.0-pre PROFILE=_@0 HEAD -> master ceb985673 2022-10-23 02:53:59 +0200
           ~/.doom.d/
shell      /run/current-system/sw/bin/bash
features   CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LIBOTF
           LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY
           PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XAW3D
           XDBE XIM XPM LUCID ZLIB
traits     gui server-running envvar-file custom-file
custom     safe-local-variable-values
modules    :config use-package :completion (company +childframe) (vertico +icons) :ui
           doom doom-dashboard doom-quit hl-todo modeline ophints (popup +defaults)
           vc-gutter vi-tilde-fringe :editor (evil +everywhere) (format +onsave)
           multiple-cursors snippets :emacs dired electric undo vc :term vterm
           :checkers syntax (spell +aspell +everywhere +flyspell) grammar :tools
           biblio direnv (eval +overlay) (lookup +dictionary) lsp magit make pass
           tree-sitter :lang (cc +lsp +tree-sitter) data emacs-lisp (haskell +lsp)
           (json +lsp) (latex +lsp) markdown (nix +lsp) (org +dragndrop +hugo +roam2)
           (python +lsp +tree-sitter) (rust +lsp) (sh +lsp +tree-sitter) (web +lsp)
           (yaml +lsp) :email mu4e :config (default +bindings +smartparens)
packages   (biblio) (emacsql-sqlite :built-in 'prefer) (inheritenv) (khardel)
           (mediawiki) (ob-mermaid) (openwith) (smali-mode :recipe (:host github :repo
           strazzere/Emacs-Smali :files (smali-mode.el) :nonrecursive t)) (systemd)
           (unfill)
unpin      rustic
elpa       vterm emacsql-sqlite emacsql