diff --git a/shake-ext.cabal b/shake-ext.cabal
--- a/shake-ext.cabal
+++ b/shake-ext.cabal
@@ -1,51 +1,58 @@
-name:                shake-ext
-version:             2.6.0.1
-synopsis:            Helper functions for linting with shake 
-description:         This package provides several linters out of the box, for use with [shake](http://shakebuild.com/).
-homepage:            https://hub.darcs.net/vmchale/shake-ext
-license:             BSD3
-license-file:        LICENSE
-author:              Vanessa McHale
-maintainer:          vamchale@gmail.com
-copyright:           Copyright: (c) 2018 Vanessa McHale
-category:            Development, Shake
-build-type:          Simple
-extra-doc-files:     README.md
-cabal-version:       1.18
+cabal-version: 1.18
+name: shake-ext
+version: 2.6.0.2
+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
+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
 
-Flag development {
-  Description: Enable `-Werror`
-  manual: True
-  default: False
-}
+source-repository head
+    type: darcs
+    location: https://hub.darcs.net/vmchale/ats
 
-library
-  hs-source-dirs:      src
-  exposed-modules:     Development.Shake.FileDetect
-                     , Development.Shake.Linters
-                     , Development.Shake.Man
-                     , Development.Shake.Check
-                     , Development.Shake.Clean
-                     , Development.Shake.Cabal
-                     , Development.Shake.Version
-                     , Development.Shake.C
-                     , Development.Shake.CCJS
-                     , Development.Shake.Elm
-  other-modules:       Development.Shake.TH
-  build-depends:       base >= 4.10 && < 5
-                     , shake
-                     , mtl
-                     , directory
-                     , text
-                     , Cabal >= 2.0
-                     , template-haskell
-  default-language:    Haskell2010
-  if flag(development)
-    ghc-options:       -Werror
-  if impl(ghc >= 8.0)
-    ghc-options:       -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat
-  ghc-options:         -Wall
+flag development
+    description:
+        Enable `-Werror`
+    default: False
+    manual: True
 
-source-repository head
-  type:     darcs
-  location: https://hub.darcs.net/vmchale/ats
+library
+    exposed-modules:
+        Development.Shake.FileDetect
+        Development.Shake.Linters
+        Development.Shake.Man
+        Development.Shake.Check
+        Development.Shake.Clean
+        Development.Shake.Cabal
+        Development.Shake.Version
+        Development.Shake.C
+        Development.Shake.CCJS
+        Development.Shake.Elm
+    hs-source-dirs: src
+    other-modules:
+        Development.Shake.TH
+    default-language: Haskell2010
+    ghc-options: -Wall
+    build-depends:
+        base >=4.10 && <5,
+        shake -any,
+        mtl -any,
+        directory -any,
+        text -any,
+        Cabal >=2.0,
+        template-haskell -any
+    
+    if flag(development)
+        ghc-options: -Werror
+    
+    if impl(ghc >=8.0)
+        ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates
+                     -Wcompat
diff --git a/src/Development/Shake/Elm.hs b/src/Development/Shake/Elm.hs
--- a/src/Development/Shake/Elm.hs
+++ b/src/Development/Shake/Elm.hs
@@ -1,9 +1,14 @@
 module Development.Shake.Elm ( elmMake
                              ) where
 
+import           Data.Semigroup
 import           Development.Shake
 
-elmMake :: [FilePath] -> FilePattern -> Rules ()
-elmMake sources fp =
+elmMake :: [FilePath] -- ^ Source files
+        -> [FilePath] -- ^ Extra source files
+        -> FilePattern -- ^ Build output
+        -> Rules ()
+elmMake sources extras fp =
     fp %> \out -> do
+        need (sources <> extras)
         command mempty "elm-make" ("--yes" : "--output" : out : "--warn" : sources)
