Why is scripting usually done in dynamically typed languages? This article applies strong typing in Haskell to shell programs. The end result can still be light-weight but also save time by reducing runtime errors. We can use a DSL in Haskell (a strongly-typed functional programming language) for shell-scripting that looks very similar to bash. main = shelly $ do apt_get "update" [] apt_get "insta