@hackage qm-interpolated-string0.1.0.0

Implementation of interpolated multiline strings

[qm|interpolated-string|]

Hackage Build Status

Implementation of interpolated multiline strings that ignores indentation and trailing whitespaces.

It's QuasiQuoter.

Actually it's modification of interpolatedstring-perl6 package. I used it to implemenent my own strings I really like.

This implementation looks just like qc from interpolatedstring-perl6 package but ignores any indentation, line-breaks (except explicitly written using \n char) and trailing whitespaces.

'm' in 'qm' means 'multiline'.

You could write a decoratively formatted string and your decorative indentation and line-breaks wont go to the string, but when you really need it, you could just escape it using backslash.

Simple usage example

{-# LANGUAGE QuasiQuotes #-}

import Text.InterpolatedString.QM (qm)

main :: IO ()
main = putStrLn [qm| hello
                   \ world |]

More examples

[qm|   hello world,
     \ what's going on here?  |]
-- Result: "hello world, what's going on here?"
[qm|
      it's actual
      ly ignored
   |]
-- Result: "it's actually ignored"
[qm|  \  You could explicitly escape indentation or\n
         line-breaks when you really need it!  \
   |]
-- Result: "  You could explicitly escape indentation or\nline-breaks when you really need it!  "
[qm| {1+2} \{3+4} |]
-- Result: "3 {3+4}"

Author

Viacheslav Lotsmanov

License

The Unlicense