diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,9 @@
+# shake-ext
+
+## 3.1.0.0
+
+  * Remove Elm-related functionality
+
+## 3.0.2.0
+
+  * Add `getRust` and `getSixten` functions for file detection.
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/shake-ext.cabal b/shake-ext.cabal
--- a/shake-ext.cabal
+++ b/shake-ext.cabal
@@ -1,23 +1,23 @@
 cabal-version: 1.18
 name: shake-ext
-version: 3.0.1.0
+version: 3.1.0.0
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
 maintainer: vamchale@gmail.com
 author: Vanessa McHale
-homepage: https://hub.darcs.net/vmchale/shake-ext
-bug-reports: https://hub.darcs.net/vmchale/ats/issues
+bug-reports: https://hub.darcs.net/vmchale/shake-ext/issues
 synopsis: Helper functions for linting with shake
 description:
     This package provides several linters out of the box, for use with [shake](http://shakebuild.com/).
 category: Development, Shake
 build-type: Simple
 extra-doc-files: README.md
+                 CHANGELOG.md
 
 source-repository head
     type: darcs
-    location: https://hub.darcs.net/vmchale/ats
+    location: https://hub.darcs.net/vmchale/shake-ext
 
 flag development
     description:
diff --git a/src/Development/Shake/Clean.hs b/src/Development/Shake/Clean.hs
--- a/src/Development/Shake/Clean.hs
+++ b/src/Development/Shake/Clean.hs
@@ -1,16 +1,9 @@
-module Development.Shake.Clean ( cleanElm
-                               , cleanProducts
+module Development.Shake.Clean ( cleanProducts
                                , cleanHaskell
                                ) where
 
-import           Development.Shake
-
--- | Clean @elm-stuff@ directory and file extensions typically associated w/ Elm
--- builds.
-cleanElm :: Action ()
-cleanElm =
-    removeFilesAfter "elm-stuff" ["//*"] >>
-    removeFilesAfter "." ["//*.elmi"]
+import           Data.Foldable
+import           Development.Shake hiding ((*>))
 
 -- | Clean generic products (@.o@, @.so@, @.a@).
 cleanProducts :: Action ()
@@ -20,7 +13,7 @@
 -- builds
 cleanHaskell :: Action ()
 cleanHaskell =
-    mapM_ (\p -> removeFilesAfter p ["//*"])
-        [ "dist", "dist-newstyle", ".stack-work", ".cabal-sandbox" ] >>
+    traverse_ (\p -> removeFilesAfter p ["//*"])
+        [ "dist", "dist-newstyle", ".stack-work", ".cabal-sandbox" ] *>
     removeFilesAfter "."
         ["//*.o", "//*.ghc.*", "//*_stub.h", "//*.hi", "//*.dyn_o", "//*.p_o", "//*.dyn_hi", "//*.p_hi", "//*.hc", "//*.haddock", "cabal.sandbox.config"]
diff --git a/src/Development/Shake/FileDetect.hs b/src/Development/Shake/FileDetect.hs
--- a/src/Development/Shake/FileDetect.hs
+++ b/src/Development/Shake/FileDetect.hs
@@ -12,9 +12,11 @@
     , getAlex
     , getShell
     , getDhall
-    , getElm
     , getMadlang
     , getC
+    , getRust
+    , getSixten
+    , getIdris
     ) where
 
 import           Data.Foldable     (fold)
@@ -28,9 +30,6 @@
 getC :: Action [FilePath]
 getC = getAll ["c"]
 
-getElm :: Action [FilePath]
-getElm = getAll ["elm"]
-
 getDhall :: Action [FilePath]
 getDhall = getAll ["dhall"]
 
@@ -39,6 +38,15 @@
 
 getToml :: Action [FilePath]
 getToml = getAll ["toml"]
+
+getSixten :: Action [FilePath]
+getSixten = getAll ["vix"]
+
+getIdris :: Action [FilePath]
+getIdris = getAll ["idr"]
+
+getRust :: Action [FilePath]
+getRust = getAll ["rs"]
 
 -- | Get all haskell source files, including module signatures.
 getHs :: [FilePath] -> Action [FilePath]
diff --git a/src/Development/Shake/Linters.hs b/src/Development/Shake/Linters.hs
--- a/src/Development/Shake/Linters.hs
+++ b/src/Development/Shake/Linters.hs
@@ -16,6 +16,7 @@
                                  , module Development.Shake.FileDetect
                                  ) where
 
+import           Control.Monad                (when)
 import           Data.Char                    (isSpace)
 import           Data.Foldable                (traverse_)
 import           Development.Shake
@@ -39,7 +40,7 @@
 checkIdempotent s p = do
     contents <- liftIO $ readFile p
     (Stdout out) <- cmd (s ++ " " ++ p)
-    if trim contents == trim out then pure () else error "formatter is not fully applied!"
+    when (trim contents /= trim out) (error "formatter is not fully applied!")
 
 -- | Check that given files are formatted according to @stylish-haskell@
 stylishHaskell :: [FilePath] -> Action ()
diff --git a/src/Development/Shake/Man.hs b/src/Development/Shake/Man.hs
--- a/src/Development/Shake/Man.hs
+++ b/src/Development/Shake/Man.hs
@@ -3,14 +3,14 @@
                              , manpages
                              ) where
 
-import           Development.Shake
+import           Development.Shake          hiding ((*>))
 import           Development.Shake.FilePath
 
 manpagesA :: FilePath -- ^ Source file. Can be any format accepted by [pandoc](http://hackage.haskell.org/package/pandoc).
           -> FilePath -- ^ Output file.
           -> Action ()
 manpagesA source out =
-    need [ source ] >>
+    need [ source ] *>
     cmd ["pandoc", source, "-s", "-t", "man", "-o", out]
 
 manpagesR :: FilePath -- ^ Source file
