   use-package-always-pin    "melpa-stable") ; Prefer stable packages
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Act III — 1st party Emacs packages
+;;; Act III — Declaring my functions here
+;;; (flycheck will emi warnings when defined in use-package statements)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun my/buffer-kill-all-but-scratches ()
+  "Kill all buffers, but the scratch ones."
+  (interactive)
+  (dolist (buffer-name (buffer-list))
+    (if (not (string-prefix-p "*scratch" buffer-name))
+	    (kill-buffer buffer-name)))
+  (delete-other-windows))
+
+(defun my/buffer-new-scratch ()
+  "Create a new frame with a new empty buffer."
+  (interactive)
+  (let ((buffer (generate-new-buffer "*scratch*")))
+    (set-buffer-major-mode buffer)
+    (switch-to-buffer buffer)))
+
+(defun my/buffer-reformat ()
+  "Re-indent and refontify whole buffer."
+	(interactive)
+	(my/buffer-reindent)
+	(font-lock-ensure))
+
+(defun my/buffer-reindent ()
+  "Indent the whole currently visited buffer."
+	(interactive)
+	(indent-region (point-min) (point-max)))
+
+(defun my/find-init-file () "Visit my Emacs initialization file."
+  (interactive)
+  (find-file (expand-file-name "init.el" user-emacs-directory)))
+
+(defun my/is-macos ()
+  "Return t when the system is a macOS."
+	(interactive)
+	(equal system-type 'darwin))
+
+(defun my/is-win32 ()
+  "Return t when the system is a Windows."
+	(interactive)
+	(equal system-type 'windows-nt))
+
+(defun my/oblique-strategy ()  "Draw and message an oblique strategy."
+	(interactive)
+	(message (oblique-strategy)))
+
+(defun my/theme-reset () "Disable loaded theme(s)."
+  (interactive)
+  (dolist (theme custom-enabled-themes) (disable-theme theme)))
+
+(defun my/theme-load (theme &optional inverse-paren-expr)
+  "Load the given THEME in parameter.  Optionally set our custom show-paren-match expression to use INVERSE-PAREN-EXPR."
+  (interactive)
+  (my/theme-reset)
+  (if theme
+    (load-theme theme t))
+  (if inverse-paren-expr
+    (my/set-face-show-paren-match-expression inverse-paren-expr)))
+
+(defun my/set-face-show-paren-match-expression (&optional inverse-video)
+  "Customises how to show paren matching, according to INVERSE-VIDEO."
+  (interactive)
+  (if inverse-video
+    (set-face-attribute 'show-paren-match-expression nil
+      ;; :inherit nil
+      :inverse-video inverse-video)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Act IV — 1st party Emacs packages
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (use-package apropos

  ;; :defer 5
  :ensure nil ;; Loaded locally
  :config
  (defun my/oblique-strategy ()  "Draw and message an oblique strategy."
	  (interactive)
	  (message (oblique-strategy)))
  (add-hook 'after-init-hook
    (lambda ()
      (setq initial-scratch-message (oblique-strategy))))

  (windmove-default-keybindings))                ; Shifted arrow keys

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Act V — 3rd party Emacs packages
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; TODO Check whether desirable to use again these packages:
