h*30J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}0.6.1.0(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-procDrops 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-procTakes 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 ")*/01ntmp-procGenerate proof instances of .tmp-proc2Proves a type is present in a list of other types.tmp-procAllows reordering of similar s.ExampleshReorder @_ @'[Bool, Int] ('c' &: (3 :: Int) &: True &: (3.1 :: Double) &: HNil)True &: 3 &: HNilhReorder @_ @'[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-procA 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.Examplesselect @"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.ExamplesselectMany @'["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 "')*/01%tmp-procSort lists of K types.tmp-procUsed to support type classes that prove a list of types is constrained to unique instances of another type class.tmp-procConvert list of E types to corresponding F types.+tmp-proc4Declares a proof that a list of types only contains Es.tmp-proc,Used to prove a list of types just contains Ks.,tmp-proc4Declares a proof that a list of types only contains <s.tmp-procConvert list of K types to corresponding  types.tmp-procConverts list of < the corresponding > symbols.-tmp-proc A list of K values..tmp-proc,Converts list of types to the corresponding K types.tmp-proc*Specifies how to obtain the service URI a K at an index in a list./tmp-procObtains the service URI of the handle whose index is specified by the proxy type.tmp-procSpecifies how to ping a K at an index in a list.0tmp-procs( are used to find matching types in an  of K.4tmp-proc1Constraint alias used to constrain types where a > looks up a type in an  of K.5tmp-proc:Constraint alias used to constrain types where proxy of a < type looks up a value in an  of K.6tmp-procA connection string used to access the service once its running.7tmp-proc"The IP address of the docker host.8tmp-proc"Indicates the result of pinging a <.If the ping succeeds, B should return 9.B8 should catch any exceptions that are expected when the <s% service is not available and return :.S uses ;1 to report any unexpected exceptions that escape B.9tmp-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-procA label used to refer to running process created from this image, e.g,  a-postgres-db?tmp-procAdditional arguments to the docker command that launches the tmp proc.@tmp-proc;Determines the service URI of the process, when applicable.Atmp-proc(Resets some state in a tmp proc service.Btmp-proc"Checks if the tmp proc started ok.Ctmp-proc2Maximum number of pings to perform during startup.Dtmp-proc%Number of milliseconds between pings.Etmp-proc)Specifies how to a get a connection to a <.Ftmp-procThe connection type.Gtmp-proc%Get a connection to the Proc via its K.Htmp-procClose a connection to a <.Itmp-proc:Allow customization of the docker command that launches a <, | | The full command is | `docker run -d  optional-args $(imageText a)` | | A fallback instance is provided that works for any instance of Proc a | Specify a new instance of ToRunCmd to control optional-argsKtmp-procProvides access to a < that has been started.Qtmp-proc.Determines if the docker daemon is accessible.Rtmp-proc Set up some <s4, run an action that uses them, then terminate them.Stmp-procStart up processes for each < type.Ttmp-proc&Terminate all processes owned by some Ks.tmp-proc!Terminate the process owned by a Ks.Utmp-procName of a process.Vtmp-procSimplifies use of ?.tmp-procSimplifies use of C.tmp-procSimplifies use of D.Wtmp-procSimplifies use of @.tmp-procThe full args of a  docker run command for starting up a <.Xtmp-proc Starts a <.It uses B to determine if the < started up ok, and will fail by throwing an exception if it did not. Returns the K used to control the < once a ping has succeeded.Ytmp-proc6Use an action that might throw an exception as a ping.tmp-procPing a K several times.Ztmp-procRun an action on a E handle as a callback on its F[tmp-procSelect the named Ks from an  of K.\tmp-proc Builds on 2 ; gives the F of the K to a callback.tmp-proc Create a  of s from a  of Ks.tmp-proc Convert a K to a .]tmp-proc Open all the E types to corresponding F types.^tmp-proc Close some E types._tmp-proc9Open some connections, use them in an action; close them.`tmp-proc>Open all known connections; use them in an action; close them.atmp-proc>Open the named connections; use them in an action; close them.<>=A?@BCD89:;,UXYWVIJKLMNOP.-STR[210/543EFGH+Z\]^_`aQ76 <>=A?@BCD89:;,UXYWVIJKLMNOP.-STR[210/543EFGH+Z\]^_`aQ76 (c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred'/Utmp-proc&Simplifies creation of a ready action.qtmp-proc.Represents a started Warp application and any , dependencies.rtmp-procRuns an  with  ProcHandle dependencies on a free port.stmp-procLike r; with an additional ready+ that determines if the server is ready.'. ttmp-procLike r; the port is secured with . utmp-procLike s; the port is secured with . tmp-procUsed to implement svtmp-procShuts down the q server and its tmp proc dependencies.wtmp-procThe qs  ProcHandles.xtmp-procThe  on which the qs server is running.ytmp-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.ztmp-procLike y6, 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-procLike "Network.Wai.Handler.Warp.openFreePort" but closes the socket before exiting.tmp-procImproves readability... y{z|qxwvrstu} y{z|qxwvrstu}(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred/<>=A?@BCD>89:;,IJKLMNOP.-543EFGH+76 F=UXYWVSTR[210/Z\]^_`aQqvxy{z|wrstu}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'tmp-proc-0.6.1.0-8gxFqj6a8Ky5lSMpDbzXePSystem.TmpProc.DockerSystem.TmpProc.TypeLevelSystem.TmpProc.Warptmp-procSystem.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: ConnectablesAreProcs HandlesOf Proc2HandleixUriOfixPingixResethandleOfSomeNamedHandlesHasNamedHandle HasHandleSvcURI HostIpAddressPingedOKNotOK PingFailedProcImageNamerunArgsuriOfresetping pingCountpingGap ConnectableConnopenConn closeConnToRunCmdtoRunCmd ProcHandlehProchPidhUrihAddr hasDocker withTmpProcs startupAll terminateAllnameOfrunArgs'uriOf'startuptoPinged withTmpConn manyNamed withConnOfopenAllcloseAll withConnswithKnownConnswithNamedConns $fToRunCmda$fConnectables:$fConnectables[] $fAreProcs: $fAreProcs[]$fIxUriOfSymbolnameprocs$fIxPingSymbolnameprocs$fIxResetSymbolnameprocs$fHandleOfSymbolnameprocsp$fIxUriOfTYPEpprocs$fIxPingTYPEpprocs$fIxResetTYPEpprocs$fHandleOfTYPEpprocsp $fEqPinged $fShowPinged ServerHandle runServerrunReadyServer runTLSServerrunReadyTLSServershutdownhandles serverPorttestWithApplicationtestWithTLSApplicationtestWithReadyApplicationtestWithReadyTLSApplication checkHealth MergeSymbolsSortSymbolsStep HalfOfImplIsIn LookupMany SortHandlesUniquelyConnsOf SomeHandles Handle2KV Proc2NameIxUriOfIxPingIxResetHandleOf terminate pingCount'pingGap' dockerCmdArgsnPingstoKVstoKV PortWaiter wai-3.2.4-LNjQc5lyVXAKgWamBlZrW4 Network.Wai Application%warp-tls-3.4.4-EhwFUOXvjcwDRbLzDI2Epg$Network.Wai.Handler.WarpTLS.Internal TLSSettingsrunReadyServer'!warp-3.4.0-F2lz3xsHtqn2ESvOhmVFcbNetwork.Wai.Handler.Warp.TypesPort readySettings!Network.Wai.Handler.Warp.SettingsSettingswaiterSettingsmkWaiter pingPeriodwithTLSApplicationSettings(Network.Wai.Handler.Warp.WithApplicationtestWithApplicationSettings withFreePort doNothing