    :hook
     rainbow-delimiters-mode)
 
+;;* Custom Function
+
+(defmacro ->> (&rest body)
+  (let ((result (pop body)))
+    (dolist (form body result)
+      (setq result (append form (list result))))))
+
+(defmacro -> (&rest body)
+  (let ((result (pop body)))
+    (dolist (form body result)
+      (setq result (append (list (car form) result)
+                           (cdr form))))))
+
 (defun csm-wsl-copy (start end)
   (interactive "r")
   (shell-command-on-region start end "clip")

      (insert command-and-go)
      (move-marker (process-mark proc) (point)))
    (process-send-string proc command-and-go)
    (switch-to-buffer "*shell*")))

(defun csm-love-repl ()
  (interactive)
  (csm-sh-send-command (concat "cd " (projectile-project-root) " && make run")))

(defun csm-love-test ()
  (interactive)
  (csm-sh-send-command (concat "cd " (projectile-project-root) " && make test")))

 "C-S-e" #'evil-window-down
 "C-S-o" #'evil-window-up
 "C-S-i" #'evil-window-right

 "C-l C-e" #'csm-send-defun-to-shell
 "C-l C-r" #'csm-send-region-to-shell
 "C-l C-b" #'csm-send-buffer-to-shell
 "C-l C-d" #'eval-defun
 "C-l C-s" #'csm-fnl-hotswap-file

 "C-M-n" #'pop-tag-mark
 "C-/" #'comment-line)
