@5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe  SafeP with additional location information required for creating good check messages%All commands available in DockerfilesType of the Dockerfile AST+  !"#$%&'()*+,*   !"#$%&'()*++)(%&',$ !"# *+  !"#$%&'()*+,None9:;<9:;<9:;<Safe)=Pretty print a  to a >Pretty print a  to a =>?@ABCD=>?@ABCD=>?@ABCD=>?@ABCDSafe:ERemove new line escapes and join escaped lines together on one line to simplify parsing later on. Escapes are replaced with line breaks to not alter the line numbers. EEE ESafe FGHIJKLMN FGHIJKLMN FGHIJKLMN FGHIJKLMNSafe)OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw)OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw)OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw)OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwSafe2xyz{|}~xyz{|~}xyz{|}~xyz{|}~ Safe None:<= "The type of free monad EDSL blocks The type of Identity based EDSL blocks'Runs the Dockerfile EDSL and returns a  Dockerfile$ you can pretty print or manipulate'runs the Dockerfile EDSL and returns a  using  import Language.Docker main :: IO () main = writeFile "something.dockerfile" $ toDockerfileStr $ do from (tagged "fpco/stack-build" "lts-6.9") add "." "app"language-dockerfile" workdir "appklanguage-dockerfile" run (words "stack build --test --only-dependencies") cmd (words "stack test") ONBUILD Dockerfile instruction3Each nested instruction gets emitted as a separate ONBUILD block v $ do from "node" run "apt-get update" onBuild $ do run "echo more-stuff" run "echo here"  A version of  which allows IO actions A version of  which allows IO actions!Just runs the EDSL's writer monad9Runs the EDSL's writer monad and pretty-prints the result---- None1Quasiquoter for embedding dockerfiles on the EDSL  putStr $ y $ do from "node" run "apt-get update" [edockerfile| RUN apt-get update CMD node something.js |] NoneX   !"#$%()*+=>vwXvw=>  !"#)(%$*+ None:<= !"#$%&'()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$&'(*)     e t s p g h y u z { r q ` v  f +language-docker-1.0.0-IZG6SK0EOn6QiId3HNzkzLanguage.DockerLanguage.Docker.SyntaxLanguage.Docker.Syntax.LiftLanguage.Docker.PrettyPrintLanguage.Docker.NormalizeLanguage.Docker.LexerLanguage.Docker.ParserLanguage.Docker.EDSL.TypesLanguage.Docker.EDSLLanguage.Docker.EDSL.QuasiLanguage.Docker.PredefPaths_language_dockerLanguage.Docker.EDSL.Plugins PrettyPrintbaseControl.Monad.IO.ClassliftIO$parsec-3.1.11-DytKT37FVYQJRVdRwnazC8Text.Parsec.Error ParseErrorInstructionPos LinenumberFilename InstructionFromAddUserLabel StopsignalCopyRunCmdShellWorkdirExposeVolume Entrypoint MaintainerEnvArg HealthcheckCommentOnBuildEOLPairs Arguments DestinationSource Dockerfile BaseImage UntaggedImage TaggedImage DigestedImage DirectoryPortsPortStrTagImage instruction sourcename$fIsStringPorts $fShowPorts $fEqPorts $fOrdPorts $fEqBaseImage$fOrdBaseImage$fShowBaseImage$fEqInstruction$fOrdInstruction$fShowInstruction$fEqInstructionPos$fOrdInstructionPos$fShowInstructionPos $fLiftPorts$fLiftBaseImage$fLiftInstruction$fLiftInstructionPos prettyPrintprettyPrintInstructionPosprettyPrintBaseImageprettyPrintPairsprettyPrintPairprettyPrintArgumentsprettyPrintJSONprettyPrintInstructionnormalizeEscapedLineslexerreserved reservedOpnaturalcommaSep stringLiteralbrackets identifierlexemecomment taggedImage digestedImage untaggedImage baseImagefromcmdcopyshell stopsignal quotedValuerawValue singleValuepairpairsremainingPairslabelargenvuseraddexposerununtilEoluntilOccurrenceworkdirvolume maintainer argumentsExecargumentsShell arguments entrypointonbuildeolInstruction healthcheckparseInstructioncontentseol dockerfile parseString parseFile EInstruction StopSignalRunArgsCmdArgsEntrypointArgs OnBuildRawEmbed EBaseImageEUntaggedImage ETaggedImageEDigestedImage$fIsStringEBaseImage$fShowEBaseImage$fEqEBaseImage$fOrdEBaseImage$fFunctorEInstructionEInstructionTM EInstructionM EDockerfileTM EDockerfileM stopSignalrunArgscmdArgsentrypointArgs onBuildRawembedrunDockerWriterrunDockerWriterIOrunDefrunDef2runDinstructionPos toDockerfiletoDockerfileStruntaggedtaggeddigestedportsportonBuildtoDockerfileIOtoDockerfileStrIOrunDockerfileIOrunDockerfileStrIO edockerfile edockerfileE dockerfileE filterEOLappendLnIfMissing dockerIgnoreaddGlobcopyGlob stackBuild stackBuild'nodejsnodejs'catchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameGHC.BaseStringescapePlaceHolder escapeSeqreplacecount trimLinesreplaceEscapeSignsremoveEscapePlaceholdercompensateLinebreaks