process-qq: Quasi-Quoters for exec process

[ bsd3, library, system ] [ Propose Tags ]

Quasi-Quoters for exec process

[Skip to Readme]
Versions [RSS] [faq] 0.2.0
Dependencies base (==4.*), bytestring (==0.9.*), enumerator (>=0.4.16 && <0.5), mtl (==2.0.*), process (==1.0.*), shakespeare-text (==0.10.*), template-haskell (>=2.4 && <2.7), text (==0.11.*) [details]
License BSD-3-Clause
Copyright (c) 2011, Hideyuki Tanaka
Author Hideyuki Tanaka
Maintainer Hideyuki Tanaka <>
Category System
Home page
Source repo head: git clone git://
Uploaded by HideyukiTanaka at 2011-12-05T03:09:26Z
Distributions NixOS:0.2.0
Downloads 912 total (9 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees


Readme for process-qq-0.2.0

[back to package description]

process-qq: A Quasi-Quoter to execute processes


This is a simple package for executing external process using quasi-quoters.


$ cabal update
$ cabal install process-qq


process-qq has three quasi-quoters, cmd, lcmd and enumCmd.

The result type of cmd is (Strict) ByteString, lcmd is Lazy ByteString, enumCmd's is MonadIO m => Enumerator ByteString m a.

Command is failed, an Exception is thrown.

Command is executed in run-time, not compile-time.


  • Invoke a process simply
{-# LANGUAGE QuasiQuotes #-}
import System.Process.QQ

main = print =<< [cmd|ls|]
  • Enumerate a process
main =
  run_ $ [enumCmd|curl|] $$ iterHandle stdout
main = do
  [url] <- getArgs
  print =<< [cmd|curl #{url}|]