Îõ³h&=œ9Â’      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred)*01ÁÂÃÄÅÌÙÚÜïÙ’tmp-proc Used internally by @SortSymbols.“tmp-proc Used internally by @SortSymbols.tmp-procSort a list of type-level symbols using merge sort.Examples):kind! SortSymbols '["xyz", "def", "abc"].SortSymbols '["xyz", "def", "abc"] :: [Symbol]= '["abc", "def", "xyz"]”tmp-proc Implements .tmp-proc"Computes the midpoint of a number.ÚN.B: maximum value that this works for depends on the reduction limit of the type-checker.Examples:kind! CmpNat 49 (HalfOf 99)!CmpNat 49 (HalfOf 99) :: Ordering= 'EQ:kind! CmpNat 50 (HalfOf 100)"CmpNat 50 (HalfOf 100) :: Ordering= 'EQtmp-proc#Counts a list, 1 element at a time.Examples(:kind! CmpNat 4 (LengthOf '[1, 2, 3, 4])-CmpNat 4 (LengthOf '[1, 2, 3, 4]) :: Ordering= 'EQtmp-procÂDrops 1 element at a time until the the dropped target is reached.Examples#:kind! Drop '["a", "b", "c", "d"] 2(Drop '["a", "b", "c", "d"] 2 :: [Symbol] = '["c", "d"]:kind! Drop '["a"] 2Drop '["a"] 2 :: [Symbol]= '[]tmp-procÊTakes 1 element at a time from a list until the desired length is reached.Examples#:kind! Take '["a", "b", "c", "d"] 2(Take '["a", "b", "c", "d"] 2 :: [Symbol] = '["a", "b"](c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred ")*/01ÁÂÃÄÅÌÙÚÜïÉtmp-procGenerate proof instances of •.•tmp-proc2Proves a type is present in a list of other types.tmp-procAllows reordering of similar s.ExamplesÐhReorder @_ @'[Bool, Int] ('c' &: (3 :: Int) &: True &: (3.1 :: Double) &: HNil)True &: 3 &: HNilØhReorder @_ @'[Double, Bool, Int] ('c' &: (3 :: Int) &: True &: (3.1 :: Double) &: HNil)3.1 &: True &: 3 &: HNiltmp-procGenerate proof instances of –.–tmp-proc8Proves that symbols with corresponding types occur as a  in a list of  typesNote - both the list symbols and  types need to be sorted, with  types sorted by key. TODO:? is there an easy way to incorporate this rule into the proof ? tmp-procGenerate proof instances of  . tmp-proc9Proves a symbol and its type occur as entry in a list of  types.tmp-procËA constraint that confirms that a type is not present in a type-level list.tmp-procUse a type-level symbol as key type that indexes a value type.tmp-procDefines a Heterogenous list.tmp-procObtain the first element of a .tmp-procGet an item in an  given its type.tmp-procAn infix alias for .tmp-procConstruct a two-item HList.tmp-procAn infix alias for .tmp-procConstruct a singleton HListtmp-procSelect an item from an  of s by key.N.BÉ Returns the first item. It assumes the keys in the KV HList are unique. TODO:& enforce this rule using a constraint.ExamplesÚselect @"d" @Double @'[KV "b" Bool, KV "d" Double] (V True &: V (3.1 :: Double) &: HNil)3.1tmp-proc)Select items with specified keys from an  of s by key.N.B.# this this is an internal function.€The keys must be provided in the same order as they occur in the HList, any other order will likely result in an compiler error.ExamplesáselectMany @'["b"] @'[Bool] @'[KV "b" Bool, KV "d" Double] (V True &: V (3.1 :: Double) &: HNil) True &: HNil    5566(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred "')*/012ÁÂÃÄÅÇÌ×ÙÚÜãëï.ÁЗtmp-procSort lists of V types.˜tmp-procñUsed to support type classes that prove a list of types is constrained to unique instances of another type class.™tmp-procConvert list of G types to corresponding H types.+tmp-proc4Declares a proof that a list of types only contains Gs.štmp-proc,Used to prove a list of types just contains >s.›tmp-proc,Used to prove a list of types just contains Vs.,tmp-proc4Declares a proof that a list of types only contains >s.œtmp-procConvert list of V types to corresponding  types.tmp-procConverts list of > the corresponding @ symbols.-tmp-proc A list of VÙ values of different types with the name of the docker network connecting their processes.tmp-proc A list of V values./tmp-proc,Converts list of types to the corresponding V types.žtmp-proc*Specifies how to obtain the service URI a V at an index in a list.0tmp-procÑObtains the service URI of the handle whose index is specified by the proxy type.Ÿtmp-procSpecifies how to ping a V at an index in a list.1tmp-proc type looks up a value in an  of V.7tmp-procA  Constraint that combines > and its supporting typeclasses8tmp-procÀA connection string used to access the service once its running.9tmp-proc"The IP address of the docker host.:tmp-proc"Indicates the result of pinging a >.If the ping succeeds, D should return ;.D8 should catch any exceptions that are expected when the >s% service is not available and return <.` uses =1 to report any unexpected exceptions that escape D.;tmp-procThe service is running OK.<tmp-procThe service is not running.=tmp-proc+Contact to the service failed unexpectedly.>tmp-proc9Specifies how to launch a temporary process using Docker.?tmp-proc)The image name of the docker image, e.g,  postgres:10.6@tmp-procÊA label used to refer to running process created from this image, e.g,  a-postgres-dbAtmp-procÆAdditional arguments to the docker command that launches the tmp proc.Btmp-proc;Determines the service URI of the process, when applicable.Ctmp-proc(Resets some state in a tmp proc service.Dtmp-proc"Checks if the tmp proc started ok.Etmp-proc2Maximum number of pings to perform during startup.Ftmp-proc%Number of milliseconds between pings.Gtmp-proc)Specifies how to a get a connection to a >.Htmp-procThe connection type.Itmp-proc%Get a connection to the Proc via its V.Jtmp-procClose a connection to a >.Ktmp-proc:Allow customization of the docker command that launches a >-The full launch command is `docker run -d  optional-args! --name $(name a) $(imageText a)`Specify a new instance of ToRunCmd to control  optional-args There is an  Overlappable& fallback instance that works for any >3, so this typeclass need only be specified when a > actually needs itMtmp-proc Prepare resources for use by a >Preparation occurs before the Proc's Õdocker container is a launched, and resources generated are made accessible via the prepared data type.Usually, it will be used by L7 to provide additional arguments to the docker command There is an  Overlappable& fallback instance that works for any >0, so this typeclass need only be specified for > that require some setupThe N& method's first argument is a list of P that represent preceding tmp-proc managed containers, to allow N2 to setup links to these containers when requiredNtmp-proc Generate a prepared' before the docker container is startedOtmp-proc#Tidy any resources associated with preparedPtmp-proc*Provides an untyped view of the data in a VVtmp-procProvides access to a > that has been started.Wtmp-procA pattern, constructor the provides selectors for the  ProcHandle fieldsÉThe selectors are readonly, i.e they only match in pattern context since  ProcHandle=s cannot be constructed directly; they are obtained@ through ` or h\tmp-proc.Determines if the docker daemon is accessible.]tmp-proc Set up some >s4, run an action that uses them, then terminate them.^tmp-proc Obtain the P._tmp-proc Obtain the P of several >s`tmp-procStart up processes for each > typeØthe processes' are able to communicate via a docker network with a unique generated nameatmp-procLike `<, but reveals the generated network name via the deprecated -btmp-procStart up processes for each > type.ctmp-proc&Terminate all processes owned by some Vs.dtmp-procLike c?, but also removes the docker network connecting the processes.¢tmp-proc!Terminate the process owned by a Vs.etmp-procName of a process.ftmp-procSimplifies use of A.£tmp-procSimplifies use of E.¤tmp-procSimplifies use of F.gtmp-procSimplifies use of B.¥tmp-procThe full args of a  docker run command for starting up a >.htmp-proc Starts a >.It uses D to determine if the >Å started up ok, and will fail by throwing an exception if it did not. Returns the V used to control the > once a ping has succeeded.itmp-proc6Use an action that might throw an exception as a ping.¦tmp-procPing a V several times.jtmp-procRun an action on a G handle as a callback on its Hktmp-procSelect the named Vs from an  of V.ltmp-proc Builds on 3 ; gives the H of the V to a callback.§tmp-proc Create a  of s from a  of Vs.¨tmp-proc Convert a V to a .mtmp-proc Open all the G types to corresponding H types.ntmp-proc Close some G types.otmp-proc9Open some connections, use them in an action; close them.ptmp-proc>Open all known connections; use them in an action; close them.qtmp-proc>Open the named connections; use them in an action; close them.rtmp-procgenerate a random network nameWtmp-procthe > that led to this  ProcHandletmp-proc@?CABDEFGHIJKLMNOPQRSTUVWZY[X\]^_`abcdefghijklmnopqrá>@?CABDEF:;<=,ehigf7KLMNO`bcda]VWZY[XWPQRSTU/65^3210.-k_r4GHIJ+jlmnopq\98 (c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred'Âã8•©tmp-proc&Simplifies creation of a ready action.…tmp-proc.Represents a started Warp application and any , dependencies.†tmp-procRuns an ª with  ProcHandle dependencies on a free port.‡tmp-procLike †; with an additional ready* that determines if the server is ready.'.ˆtmp-procLike †; the port is secured with «.‰tmp-procLike ‡; the port is secured with «.¬tmp-procUsed to implement ‡Štmp-procShuts down the … server and its tmp proc dependencies.‹tmp-procThe …s  ProcHandles.Œtmp-procThe ­ on which the …s server is running.tmp-proc Set up some  ProcHandles then run an ª" that uses them on a free port.-Allows the app to configure itself using the  tmp procs6, then provides a callback with access to the handles.The  tmp procs1 are shut down when the application is shut down.Žtmp-procLike 6, but the port is secured using a 'Warp.TLSSettings. 'tmp-proc Set up some  ProcHandles then run an ª" that uses them on a free port.-Allows the app to configure itself using the  tmp procs6, then provides a callback with access to the handles. Also runs a ready? action that to determine if the application started correctly.The  tmp procs1 are shut down when the application is shut down.tmp-procLike ; the port is secured with «.‘tmp-proc-Simplifies writing the health checks used by ready variants of this module.®tmp-procA ¯ configured with a ready action.9The ready action is used to check if a server is healthy.°tmp-procA ¯ configured with a ready action.9The ready action is used to check if a server is healthy.±tmp-proc&Simplifies creation of a ready action.²tmp-proc*Gap between service pings in milliseconds.³tmp-procLike ´. , but the port is secured using the provided «.µtmp-procÒLike "Network.Wai.Handler.Warp.openFreePort" but closes the socket before exiting.¶tmp-procImproves readability... …†‡ˆ‰Š‹ŒŽ‘ Ž…Œ‹Š†‡ˆ‰‘(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred9@ð +,-./0123456789:=;<>FEDBAC@??@GJHIHKLMNOPUTSQRVX[YWZ\]^_`abcdefghijklmnopqr…†‡ˆ‰Š‹ŒŽ‘·      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸µ¹º»¼½¾µ¿ÀÁÂÃtmp-proc-0.7.0.0-inplaceSystem.TmpProc.DockerSystem.TmpProc.TypeLevelSystem.TmpProc.WarpSystem.TmpProc.TypeLevel.SortSystem.TmpProc SortSymbolsHalfOfLengthOfDropTake IsInProofReorderHhReorder ManyMemberKV manyProofMemberKV lookupProofLookupKVAtHead OtherKeysIsAbsentKVVHListHNilHConshHeadhOf&:both&:&onlyselect selectMany $fEqHList $fEqHList0 $fShowHList $fShowHList0 $fMemberKVkt:$fMemberKVkt:0$fMemberKVkt:1$fManyMemberKVksts:$fManyMemberKV:::$fManyMemberKV:::0$fReorderHxs[] $fIsInProoft:$fIsInProoft:0 $fReorderHxs: ConnectablesAreProcsNetworkHandlesOf HandlesOf Proc2HandleixUriOfixPingixResethandleOfSomeNamedHandlesHasNamedHandle HasHandleProcPlusSvcURI HostIpAddressPingedOKNotOK PingFailedProcImageNamerunArgsuriOfresetping pingCountpingGap ConnectableConnopenConn closeConnToRunCmdtoRunCmdPreparerpreparetidy SlimHandleshName shIpAddressshPidshUri ProcHandlehProchPidhUrihAddr hasDocker withTmpProcsslimmapSlim startupAllnetwStartupAll startupAll' terminateAllnetwTerminateAllnameOfrunArgs'uriOf'startuptoPinged withTmpConn manyNamed withConnOfopenAllcloseAll withConnswithKnownConnswithNamedConnsgenNetworkName $fToRunCmdaa' $fPrepareraa' $fAreProcs: $fAreProcs[]$fIxUriOfSymbolnameprocs$fIxPingSymbolnameprocs$fIxResetSymbolnameprocs$fHandleOfSymbolnameprocsp$fIxUriOfTYPEpprocs$fIxPingTYPEpprocs$fIxResetTYPEpprocs$fHandleOfTYPEpprocsp$fConnectables:$fConnectables[]$fEqSlimHandle$fShowSlimHandle $fEqPinged $fShowPinged ServerHandle runServerrunReadyServer runTLSServerrunReadyTLSServershutdownhandles serverPorttestWithApplicationtestWithTLSApplicationtestWithReadyApplicationtestWithReadyTLSApplication checkHealth MergeSymbolsSortSymbolsStep HalfOfImplIsIn LookupMany SortHandlesUniquelyConnsOf SomeProcs SomeHandles Handle2KV Proc2NameIxUriOfIxPingIxResetHandleOf terminate pingCount'pingGap' dockerCmdArgsnPingstoKVstoKV PortWaiter wai-3.2.4-2pbEu9Yk5hGBvNQRSu6RK8 Network.Wai Application$warp-tls-3.4.4-6uD11ShcAj1PuhTwn4WvX$Network.Wai.Handler.WarpTLS.Internal TLSSettingsrunReadyServer'"warp-3.3.31-56iwn8ptWpT9OMio7ntinvNetwork.Wai.Handler.Warp.TypesPort readySettings!Network.Wai.Handler.Warp.SettingsSettingswaiterSettingsmkWaiter pingPeriodwithTLSApplicationSettings(Network.Wai.Handler.Warp.WithApplicationtestWithApplicationSettings withFreePort doNothing