   `(when (fboundp 'cl-assert)
      (cl-assert ,@args)))
 
+(unless (featurep 'subr-x)
+  (defsubst string-trim-left (string)
+    "Remove leading whitespace from STRING."
+    (if (string-match "\\`[ \t\n\r]+" string)
+        (replace-match "" t t string)
+      string))
+  (defsubst string-trim-right (string)
+    "Remove trailing whitespace from STRING."
+    (if (string-match "[ \t\n\r]+\\'" string)
+        (replace-match "" t t string)
+      string))
+  (defsubst string-trim (string)
+    "Remove leading and trailing whitespace from STRING."
+    (string-trim-left (string-trim-right string))))
+
 ;;; Group
 
 (defgroup fstar nil

(defun fstar-setup-interactive ()
  "Setup interactive F* mode."
  (fstar-subp-refresh-keybindings fstar-interactive-keybinding-style)
  (flycheck-mode -1))

;;; Comment syntax



(require 'dash)
(require 'cl-lib)
(require 'flycheck nil t)

;;; Compatibility

