Īõ³h&2%.Śū      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred)*01ĮĀĆÄÅĢŁŚÜļh{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-proc3Proves 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-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    55(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred "')*/01ĮĀĆÄÅĒĢŁŚÜćļ$NĀ€tmp-procSort lists of I types. tmp-procConvert list of E types to corresponding F types. (tmp-proc4Declares a proof that a list of types only contains Es. ‚tmp-procUsed by (( to prove a list of types just contains Es. ƒtmp-proc,Used to prove a list of types just contains Is. )tmp-proc4Declares a proof that a list of types only contains <s. *tmp-procUsed by )( to prove a list of types just contains <s. „tmp-procConvert list of I types to corresponding  types. …tmp-procConverts list of < the corresponding > symbols. -tmp-proc A list of I values. .tmp-proc,Converts list of types to the corresponding I types. †tmp-proc*Specifies how to obtain the service URI a I at an index in a list. /tmp-procŅObtains the service URI of the handle whose index is specified by the proxy type. ‡tmp-procSpecifies how to ping a I at an index in a list. 0tmp-proc=Pings the handle whose index is specified by the proxy type. ˆtmp-procSpecifies how to reset a I at an index in a list. 1tmp-proc>Resets the handle whose index is specified by the proxy type. ‰tmp-procSpecifies how to obtain a I that is present in an HList. 2tmp-proc1Obtain the handle matching the given type from a  of I. 3tmp-procConstraint alias when several >s( are used to find matching types in an  of I.4tmp-proc1Constraint alias used to constrain types where a > looks up a type in an  of I.5tmp-proc:Constraint alias used to constrain types where proxy of a < type looks up a value in an  of I.6tmp-procĄA 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 :.Q 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-proc:Specifies 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-db ?tmp-procĒAdditional arguments to the docker command that launches the tmp proc. @tmp-proc=A?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_Ģ<>=A?@BCD89:;)*+,SVWUTIJKLMN.-QRPY210/543EFGH(XZ[\]^_O76 (c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred'Āć-č‘tmp-proc&Simplifies creation of a ready action.ntmp-proc.Represents a started Warp application and any ) dependencies.otmp-procRuns an ’ with  ProcHandle dependencies on a free port.ptmp-procLike o; with an additional ready+ that determines if the server is ready.'. qtmp-procLike o; the port is secured with “. rtmp-procLike p; the port is secured with “. ”tmp-procUsed to implement pstmp-procShuts down the n server and its tmp proc dependencies.ttmp-procThe ns  ProcHandles.utmp-procThe • on which the ns server is running.vtmp-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.wtmp-procLike v6, but the port is secured using a 'Warp.TLSSettings. 'xtmp-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.ytmp-procLike x; the port is secured with “. ztmp-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... nopqrstuvwxyz vxwynutsopqrz(c) 2020-2021 Tim EmiolaBSD30Tim Emiola  Safe-Inferred.yÜ ()*+,-./012345678;9:==>EHFGFINMLJKOPQRSTUVWXYZ[\]^_nopqrstuvwxyzŸ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”ž¢£¤„¦§žØ©Ŗ«¬'tmp-proc-0.5.2.0-IBYQSeaFOfcL0886gzNE3JSystem.TmpProc.DockerSystem.TmpProc.TypeLevelSystem.TmpProc.WarpSystem.TmpProc.TypeLevel.SortSystem.TmpProc SortSymbolsHalfOfLengthOfDropTake IsInProofReorderHhReorder ManyMemberKV manyProofMemberKV lookupProofLookupKVAtHead OtherKeysIsAbsentKVVHListHNilHConshHeadhOf&:select selectMany $fEqHList $fEqHList0 $fShowHList $fShowHList0 $fMemberKVkt:$fMemberKVkt:0$fMemberKVkt:1$fManyMemberKVksts:$fManyMemberKV:::$fManyMemberKV:::0$fReorderHxs[] $fIsInProoft:$fIsInProoft:0 $fReorderHxs: ConnectablesAreProcs SomeProcs SomeProcsNil SomeProcsCons HandlesOf Proc2HandleixUriOfixPingixResethandleOfSomeNamedHandlesHasNamedHandle HasHandleSvcURI HostIpAddressPingedOKNotOK PingFailedProcImageNamerunArgsuriOfresetping pingCountpingGap ConnectableConnopenConn closeConn ProcHandlehProchPidhUrihAddr hasDocker withTmpProcs startupAll terminateAllnameOfrunArgs'uriOf'startuptoPinged withTmpConn manyNamed withConnOfopenAllcloseAll withConnswithKnownConnswithNamedConns $fAreProcs: $fAreProcs[]$fIxUriOfSymbolnameprocs$fIxPingSymbolnameprocs$fIxResetSymbolnameprocs$fHandleOfSymbolnameprocsp$fIxUriOfTYPEpprocs$fIxPingTYPEpprocs$fIxResetTYPEpprocs$fHandleOfTYPEpprocsp$fConnectables:$fConnectables[] $fEqPinged $fShowPinged ServerHandle runServerrunReadyServer runTLSServerrunReadyTLSServershutdownhandles serverPorttestWithApplicationtestWithTLSApplicationtestWithReadyApplicationtestWithReadyTLSApplication checkHealth MergeSymbolsSortSymbolsStep HalfOfImplIsIn LookupMany SortHandlesConnsOf SomeConns SomeHandles Handle2KV Proc2NameIxUriOfIxPingIxResetHandleOf terminate pingCount'pingGap' dockerCmdArgsnPingstoKVstoKV PortWaiter wai-3.2.3-AquznHpI3zEC6V2xgA44hW Network.Wai Application%warp-tls-3.4.0-Ca8iF4GiG2J9aG5UnFwnXa$Network.Wai.Handler.WarpTLS.Internal TLSSettingsrunReadyServer'"warp-3.3.28-8gjzpeWxpI3BYXSwTXBZVGNetwork.Wai.Handler.Warp.TypesPort readySettings!Network.Wai.Handler.Warp.SettingsSettingswaiterSettingsmkWaiter pingPeriodwithTLSApplicationSettings(Network.Wai.Handler.Warp.WithApplicationtestWithApplicationSettings withFreePort doNothing