hask-replace 0.6.0

Rename haskell modules at the speed of Rust
hask-replace-0.6.0 is not a library.
Visit the last successful build: hask-replace-0.1.4


Windows build status Build Status

hask-replace is a command-line tool that simplifies the process of renaming Haskell, Elm, and Idris modules. It can also be used to rename packages.

The Pitch

Here's an example of how you would use hr:

cabal unpack dhall
cd dhall-1.5.1/
hr module . "Dhall.Import" "Dhall.Dependencies"
cabal new-build

As you can see, it's a lot less painful than whatever witchcraft you'd have to resort to to accomplish the same thing in bash. Not only that, it works for Idris and Elm too!



The easiest way to install for most users is probably via a shell script, viz.

curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/hask-replace

Binary releases

If the script doesn't work, you can also download prebuilt binaries. You can find binaries for various platforms on the release page.


First, install cargo. Then:

 $ cargo install hask-replace

You will need to use the nightly release for this to work; if in doubt run

rustup run nightly cargo install hask-replace


Package Task Time
lens Rename module 14.77ms
dhall Rename Module 7.41 ms
haskell-src-exts Rename Module 30.29 ms


hr can also be used on Idris.

git clone https://github.com/HuwCampbell/idris-lens.git
cd idris-lens
hr idris . Control.Lens.Maths Control.Lens.Math
idris --build lens.ipkg

Vim Plugin

There is a vim plugin for hask-replace here. It supports copying and moving Haskell, Elm, and Idris modules.