                      prev))))))
         (cond
          (previous
-          (newline)
+          (shm-newline)
           (indent-to (shm-node-start-column (cdr previous))))
          ((and (or (= column (current-column))
                    (= column (+ (shm-node-start-column parent)
                                 (shm-indent-spaces))))
                (/= column (shm-node-start-column parent)))
-          (newline)
+          (shm-newline)
           (indent-to (+ (shm-node-start-column parent)
                         (shm-indent-spaces))))
          (t
-          (newline)
+          (shm-newline)
           (indent-to column)))))
      ;; Indent for sum types
      ((or (and parent
                (eq 'DataDecl (shm-node-cons parent)))
           (eq 'ConDecl (shm-node-cons current)))
-      (newline)
+      (shm-newline)
       (indent-to (shm-node-start-column current))
       (delete-char -2)
       (insert "| "))

        (shm-set-node-overlay parent-pair)))
     ;; Lambdas indents k spaces inwards
     ((eq 'Lambda (shm-node-cons current))
      (newline)
      (indent-to (+ (shm-indent-spaces) (shm-node-start-column current))))
     ;; Indentation for RHS
     ((and parent

               parent
               (string= (shm-node-type-name parent)
                        "ImportDecl")))
      (shm-newline)
      (insert "import "))
     ((and (or (string= "Type" (shm-node-type-name current))
               (string= "Context" (shm-node-type-name current)))
           (eq 'TypeSig (shm-node-cons (shm-decl-node (point)))))
      (let ((column (save-excursion (search-backward-regexp " :: ")
                                    (+ 4 (current-column)))))
        (shm-newline)
        (indent-to column)
        (message "newline-string: %s" newline-string)
        (when (and dragging
                   (or (string-match "^=>" newline-string)
                       (string-match "^->" newline-string)))
