<div dir="ltr">I began converting an unwieldy Makefile into a Haskell program via Shake, hoping that I could increase both its readability and modularity.  The modularity has increased greatly, and I have found it exhilarating how much more I can express about my dependencies.  However, readability has suffered.<br>
<br>I quickly found that heavy shell interaction became unwieldy and I came out with code that was much more difficult to scan with my eyes then what I had in my Makefile.<br><br>I attempted to fix this by using the Shelly library for my shell interactions, and was well pleased until I attempted to compile and discovered Shelly.FilePath is NOT Prelude.FilePath.  Now I am left sprinkling coercions all over the place and am again shaking my head at how difficult to scan my code has become.<br>
<br>I have been considering writing a shim over Shelly, but the prospect makes me uneasy.<br><br>Has anyone else walked down this path before, and if so what did you bring away from the experience?  I find this situation such a shame, as all my other experiences with both libraries have been quite wonderful.<br>
<br>- Eli<br></div>