úÎ!«}SafeqNone¬Noneë None5 interpolateA  8 for string interpolation. Expression enclosed within #{...}/ are interpolated, the result has to be in the   class.It interpolates stringslet name = "Marvin"putStrLn [i|name: #{name}|] name: Marvin or integers let age = 23putStrLn [i|age: #{age}|]age: 23 or arbitrary Haskell expressions!let profession = "\955-scientist">putStrLn [i|profession: #{unwords [name, "the", profession]}|]"profession: Marvin the »-scientistNone – interpolateLike  , but constructs a value of type IsString a => aSafe interpolateURemove indentation as much as possible while preserving relative indentation levels. is useful in combination with ± to remove leading spaces that resulted from code indentation. That way you can freely indent your string literals without the indentation ending up in the resulting strings.Here is an example::set -XQuasiQuotesimport Data.String.Interpolate#import Data.String.Interpolate.Util:{  putStr $ unindent [i| def foo 23 end |]:}def foo 23endVTo allow this, two additional things are being done, apart from removing indentation:3One empty line at the beginning will be removed andif the last newline character ("\n"0) is followed by spaces, the spaces are removed.SafeX     !(interpolate-0.2.1-B9e8KCfVAnOGdllyXaLYLJData.String.Interpolate Data.String.Interpolate.IsStringData.String.Interpolate.UtilData.String.Interpolate.Compat%Data.String.Interpolate.Internal.UtilData.String.Interpolate.ParseiPaths_interpolateunindentbase Text.Read readMaybetoStringunescapeNode Abstraction ExpressionLiteral parseNodestemplate-haskellLanguage.Haskell.TH.Quote QuasiQuoterGHC.ShowShowversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName