Package evaluation to load ToolipsUploader on Julia 1.14.0-DEV.2593 (15c2b67521*) started at 2026-07-03T21:03:32.722 ################################################################################ # Set-up # Set-up completed after 0.15s ################################################################################ # Installation # Installing ToolipsUploader... Resolving package versions... Installed ConcurrentUtilities ─ v2.5.1 Installed CodecZlib ─────────── v0.7.8 Installed URIs ──────────────── v1.6.1 Installed ExceptionUnwrapping ─ v0.1.11 Installed ToolipsUploader ───── v0.1.0 Installed MbedTLS ───────────── v1.1.10 Installed TranscodingStreams ── v0.11.3 Installed PrecompileTools ───── v1.3.4 Installed Toolips ───────────── v0.3.15 Installed ToolipsSession ────── v0.5.3 Installed BitFlags ──────────── v0.1.10 Installed ParametricProcesses ─ v0.1.3 Installed ToolipsServables ──── v0.2.11 Installed LoggingExtras ─────── v1.2.0 Installed OpenSSL ───────────── v1.6.1 Installed SimpleBufferStream ── v1.2.0 Installed MbedTLS_jll ───────── v2.28.1010+0 Installed Crayons ───────────── v4.1.1 Installed Preferences ───────── v1.5.2 Installed JLLWrappers ───────── v1.8.0 Installed HTTP ──────────────── v1.11.0 Installing 1 artifacts Installed artifact MbedTLS 1.0 MiB Updating `~/.julia/environments/v1.14/Project.toml` [8d58c116] + ToolipsUploader v0.1.0 Updating `~/.julia/environments/v1.14/Manifest.toml` [d1d4a3ce] + BitFlags v0.1.10 [944b1d66] + CodecZlib v0.7.8 [f0e56b4a] + ConcurrentUtilities v2.5.1 [a8cc5b0e] + Crayons v4.1.1 [460bff9d] + ExceptionUnwrapping v0.1.11 ⌅ [cd3eb016] + HTTP v1.11.0 [692b3bcd] + JLLWrappers v1.8.0 [e6f89c97] + LoggingExtras v1.2.0 [739be429] + MbedTLS v1.1.10 [4d8831e6] + OpenSSL v1.6.1 [9ce9415f] + ParametricProcesses v0.1.3 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [777ac1f9] + SimpleBufferStream v1.2.0 [a47e2ad8] + Toolips v0.3.15 [bf3a9e68] + ToolipsServables v0.2.11 [2fe55384] + ToolipsSession v0.5.3 [8d58c116] + ToolipsUploader v0.1.0 [3bb67fe8] + TranscodingStreams v0.11.3 [5c2747f8] + URIs v1.6.1 [c8ffd9c3] + MbedTLS_jll v2.28.1010+0 [0dad84c5] + ArgTools v1.2.0 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.13.0 [b27032c2] + LibCURL v1.0.0 [76f85450] + LibGit2 v1.11.0 [8f399da3] + Libdl v1.11.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.3.0 [44cfe95a] + Pkg v1.14.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [f489334b] + StyledStrings v1.13.0 [fa267f1f] + TOML v1.0.3 [a4e569a6] + Tar v1.10.0 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.5+2 [deac9b47] + LibCURL_jll v8.21.0+0 [e37daf67] + LibGit2_jll v1.9.4+0 [29816b5a] + LibSSH2_jll v1.11.101+0 [14a3606d] + MozillaCACerts_jll v2026.5.14 [458c3c95] + OpenSSL_jll v3.5.7+0 [efcefdf7] + PCRE2_jll v10.47.0+0 [83775a58] + Zlib_jll v1.3.2+0 [3161d3a3] + Zstd_jll v1.5.7+1 [8e850ede] + nghttp2_jll v1.69.0+0 [3f19e933] + p7zip_jll v17.8.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 11.6s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Project No packages added to or removed from `~/.julia/environments/pkgeval/Project.toml` Manifest No packages added to or removed from `~/.julia/environments/pkgeval/Manifest.toml` Precompiling package dependencies... Precompiling project... 37.8 s ✓ URIs 37.7 s ✓ BitFlags 56.7 s ✓ TranscodingStreams 0.9 s ✓ SimpleBufferStream 2.5 s ✓ Crayons 2.3 s ✓ ConcurrentUtilities 20.6 s ✓ ParametricProcesses 212.0 s ✓ ToolipsServables 31.5 s ✓ LoggingExtras 31.8 s ✓ Preferences 38.5 s ✓ ExceptionUnwrapping 80.7 s ✓ OpenSSL 19.6 s ✓ CodecZlib 32.2 s ✓ JLLWrappers 31.5 s ✓ PrecompileTools 32.3 s ✓ MbedTLS_jll 33.2 s ✓ MbedTLS 165.6 s ✓ HTTP ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =# Core.@doc "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" mutable struct Route{T <: AbstractConnection} <: AbstractHTTPRoute │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:855 =# │ path::String │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:856 =# │ page::Function │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ function Route(path::String, f::Function) │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:858 =# │ params = ((methods(f))[1]).sig.parameters │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# │ rtype::Type{<:AbstractConnection} = Connection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:860 =# │ if length(params) > 1 │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:861 =# │ if params[2] <: AbstractConnection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:862 =# │ rtype = params[2] │ end │ end │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:865 =# │ new{rtype}(path, f) │ end │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,context,syntax_flags,name_val,meta,value,jl_source,is_toplevel_thunk,source │ [macrocall] | │ @doc :: Identifier | mod=Core │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) :: Value | │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value | │ [struct] | │ true :: Value | │ [<:] | │ [curly] | │ Route :: Identifier | │ [<:] | │ T :: Identifier | │ AbstractConnection :: Identifier | │ AbstractHTTPRoute :: Identifier | │ [block] | │ [::] | │ path :: Identifier | │ String :: Identifier | │ [::] | │ page :: Identifier | │ Function :: Identifier | │ [function] | │ [call] | │ Route :: Identifier | │ [::] | │ path :: Identifier | │ String :: Identifier | │ [::] | │ f :: Identifier | │ Function :: Identifier | │ [block] | │ [=] | │ params :: Identifier | │ [.] | │ [.] | │ [ref] | │ [call] | │ methods :: Identifier | │ f :: Identifier | │ 1 :: Value | │ [inert] | │ sig :: Identifier | │ [inert] | │ parameters :: Identifier | │ [=] | │ [::] | │ rtype :: Identifier | │ [curly] | │ Type :: Identifier | │ [<:] | │ AbstractConnection :: Identifier | │ Connection :: Identifier | │ [if] | │ [call] | │ > :: Identifier | │ [call] | │ length :: Identifier | │ params :: Identifier | │ 1 :: Value | │ [block] | │ [if] | │ [<:] | │ [ref] | │ params :: Identifier | │ 2 :: Value | │ AbstractConnection :: Identifier | │ [block] | │ [=] | │ rtype :: Identifier | │ [ref] | │ params :: Identifier | │ 2 :: Value | │ [call] | │ [curly] | │ new :: Identifier | │ rtype :: Identifier | │ path :: Identifier | │ f :: Identifier | │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,context,syntax_flags,name_val,meta,value,jl_source,is_toplevel_thunk,source │ [block] | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ [if] | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ true :: Value | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ [=] | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ val :: Identifier | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ [struct] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ true :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [<:] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [curly] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Route :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [<:] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ T :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ AbstractHTTPRoute :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [block] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [::] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ path :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ String :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [::] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ page :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Function :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [function] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Route :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [::] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ path :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ String :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [::] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ f :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Function :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [block] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [=] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ params :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [.] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [.] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [ref] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ methods :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ f :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ 1 :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [inert] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ sig :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [inert] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ parameters :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [=] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [::] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ rtype :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [curly] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Type :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [<:] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Connection :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [if] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ > :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ length :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ params :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ 1 :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [block] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [if] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [<:] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [ref] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ params :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ 2 :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [block] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [=] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ rtype :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [ref] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ params :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ 2 :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [curly] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ new :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ rtype :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ path :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ f :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ Base.Docs.doc! :: Value | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ Toolips :: Value | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Base.Docs.Binding :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Toolips :: Value | [old,SL(AEgxV2t1NBY,Base,SL(8qmRuVK5w94,Toolips,)),(. Base (inert @__MODULE__))], │ [inert] | [old,SL(8qmRuVK5w94,Toolips,),@doc],jl_source=L47 │ Route :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Base.Docs.docstr :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Core.svec :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ :linenumber => 814 :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ :module => Toolips :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Pair :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [inert] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ fields :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [call] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [curly] | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ Union :: Identifier | [old,SL(8qmRuVK5w94,Toolips,),@doc], │ [if] | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ true :: Value | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ val :: Identifier | [old,SL(DqBb3LviNVa,Base.Docs,SL(8qmRuVK5w94,Toolips,)),@doc], │ │ file = "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" │ line = 814 └ mod = Toolips ERROR: LoadError: internal lowering bug: #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# - `jl_assert(!(haskey(ssa_rewrites, lhs_id)), _)`: multiple assignments to ssavalue Expression:  (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) Containing expressions:  (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection))  Detailed provenance:  (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:370 =#  ├─ (= #₁₇ (call core.TypeVar :#T1 #₂₃/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/closure_conversion.jl:197 =#  │ ├─ (= #₁₇ (call core.TypeVar :#T1 #₂₃/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:274 =#  │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:274 =#  │ │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection))  │ │ │ │ ├─ (call core.TypeVar :#T1 AbstractConnection) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:3066 =#  │ │ │ │ │ ├─ (<: AbstractConnection)  │ │ │ │ │ │ ├─ (<: AbstractConnection)  │ │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859  │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  Stacktrace:  [1] macro expansion  @ /source/usr/share/julia/JuliaLowering/src/ast.jl:23 [inlined]  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1136  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1257  [4] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:854  [5] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715  [6] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:809  [7] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715  [8] compile_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1037  [9] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1197  [10] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1287  [11] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [12] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:326  [13] top-level scope  @ ~/.julia/packages/Toolips/JjQqz/src/Toolips.jl:144  [14] include(mod::Module, _path::String)  @ Base Base.jl:325  [15] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3303  [16] top-level scope  @ stdin:5  [17] eval(m::Module, e::Any)  @ Core boot.jl:522  [18] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [19] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [20] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [21] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/Toolips.jl:11 in expression starting at stdin:5 ✗ Toolips ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:130  [12] top-level scope  @ ~/.julia/packages/ToolipsSession/wK5tg/src/ToolipsSession.jl:72  [13] include(mod::Module, _path::String)  @ Base Base.jl:325  [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3303  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:522  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/ToolipsSession/wK5tg/src/ToolipsSession.jl:1 in expression starting at stdin:5 ✗ ToolipsSession ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:130  [12] top-level scope  @ ~/.julia/packages/ToolipsUploader/cX2ul/src/ToolipsUploader.jl:64  [13] include(mod::Module, _path::String)  @ Base Base.jl:325  [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3303  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:522  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/ToolipsUploader/cX2ul/src/ToolipsUploader.jl:1 in expression starting at stdin:5 ✗ ToolipsUploader 18 dependencies successfully precompiled in 1125 seconds. 31 already precompiled. Precompilation completed after 1154.62s ################################################################################ # Loading # Loading ToolipsUploader... ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =# Core.@doc "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" mutable struct Route{T <: AbstractConnection} <: AbstractHTTPRoute │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:855 =# │ path::String │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:856 =# │ page::Function │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ function Route(path::String, f::Function) │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:858 =# │ params = ((methods(f))[1]).sig.parameters │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# │ rtype::Type{<:AbstractConnection} = Connection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:860 =# │ if length(params) > 1 │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:861 =# │ if params[2] <: AbstractConnection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:862 =# │ rtype = params[2] │ end │ end │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:865 =# │ new{rtype}(path, f) │ end │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,context,syntax_flags,name_val,meta,value,jl_source,is_toplevel_thunk,source │ [macrocall] | │ @doc :: Identifier | mod=Core │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) :: Value | │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value | │ [struct] | │ true :: Value | │ [<:] | │ [curly] | │ Route :: Identifier | │ [<:] | │ T :: Identifier | │ AbstractConnection :: Identifier | │ AbstractHTTPRoute :: Identifier | │ [block] | │ [::] | │ path :: Identifier | │ String :: Identifier | │ [::] | │ page :: Identifier | │ Function :: Identifier | │ [function] | │ [call] | │ Route :: Identifier | │ [::] | │ path :: Identifier | │ String :: Identifier | │ [::] | │ f :: Identifier | │ Function :: Identifier | │ [block] | │ [=] | │ params :: Identifier | │ [.] | │ [.] | │ [ref] | │ [call] | │ methods :: Identifier | │ f :: Identifier | │ 1 :: Value | │ [inert] | │ sig :: Identifier | │ [inert] | │ parameters :: Identifier | │ [=] | │ [::] | │ rtype :: Identifier | │ [curly] | │ Type :: Identifier | │ [<:] | │ AbstractConnection :: Identifier | │ Connection :: Identifier | │ [if] | │ [call] | │ > :: Identifier | │ [call] | │ length :: Identifier | │ params :: Identifier | │ 1 :: Value | │ [block] | │ [if] | │ [<:] | │ [ref] | │ params :: Identifier | │ 2 :: Value | │ AbstractConnection :: Identifier | │ [block] | │ [=] | │ rtype :: Identifier | │ [ref] | │ params :: Identifier | │ 2 :: Value | │ [call] | │ [curly] | │ new :: Identifier | │ rtype :: Identifier | │ path :: Identifier | │ f :: Identifier | │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,context,syntax_flags,name_val,meta,value,jl_source,is_toplevel_thunk,source │ [block] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ [if] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ true :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ [=] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ val :: Identifier | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ [struct] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ true :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Route :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ T :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ AbstractHTTPRoute :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ path :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ String :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ page :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Function :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [function] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Route :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ path :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ String :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ f :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Function :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [=] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [.] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [.] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [ref] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ methods :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ f :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ 1 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ sig :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ parameters :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [=] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ rtype :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Type :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Connection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [if] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ > :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ length :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ 1 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [if] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [ref] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ 2 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [=] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ rtype :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [ref] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ 2 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ new :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ rtype :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ path :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ f :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ Base.Docs.doc! :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ Toolips :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Base.Docs.Binding :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Toolips :: Value | [old,SL(9oRwIvwlK8X,Base,SL(1zcVTKYhMMQ,Toolips,)),(. Base (inert @__MODULE__))], │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc],jl_source=L47 │ Route :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Base.Docs.docstr :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Core.svec :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ :linenumber => 814 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ :module => Toolips :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Pair :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ fields :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ Union :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ [if] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ true :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ val :: Identifier | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ file = "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" │ line = 814 └ mod = Toolips ERROR: LoadError: internal lowering bug: #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# - `jl_assert(!(haskey(ssa_rewrites, lhs_id)), _)`: multiple assignments to ssavalue Expression:  (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) Containing expressions:  (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection))  Detailed provenance:  (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:370 =#  ├─ (= #₁₇ (call core.TypeVar :#T1 #₂₃/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/closure_conversion.jl:197 =#  │ ├─ (= #₁₇ (call core.TypeVar :#T1 #₂₃/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:274 =#  │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:274 =#  │ │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection))  │ │ │ │ ├─ (call core.TypeVar :#T1 AbstractConnection) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:3066 =#  │ │ │ │ │ ├─ (<: AbstractConnection)  │ │ │ │ │ │ ├─ (<: AbstractConnection)  │ │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859  │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  Stacktrace:  [1] macro expansion  @ /source/usr/share/julia/JuliaLowering/src/ast.jl:23 [inlined]  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1136  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1257  [4] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:854  [5] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715  [6] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:809  [7] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715  [8] compile_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1037  [9] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1197  [10] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1287  [11] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [12] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:326  [13] top-level scope  @ ~/.julia/packages/Toolips/JjQqz/src/Toolips.jl:144  [14] include(mod::Module, _path::String)  @ Base Base.jl:325  [15] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3303  [16] top-level scope  @ stdin:5  [17] eval(m::Module, e::Any)  @ Core boot.jl:522  [18] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [19] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [20] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [21] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/Toolips.jl:11 in expression starting at stdin:5 ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:130  [12] top-level scope  @ ~/.julia/packages/ToolipsSession/wK5tg/src/ToolipsSession.jl:72  [13] include(mod::Module, _path::String)  @ Base Base.jl:325  [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3303  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:522  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/ToolipsSession/wK5tg/src/ToolipsSession.jl:1 in expression starting at stdin:5 ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:130  [12] top-level scope  @ ~/.julia/packages/ToolipsUploader/cX2ul/src/ToolipsUploader.jl:64  [13] include(mod::Module, _path::String)  @ Base Base.jl:325  [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3303  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:522  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/ToolipsUploader/cX2ul/src/ToolipsUploader.jl:1 in expression starting at stdin:5 3 dependencies had output during precompilation: ┌ ToolipsSession │ ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) │ Stacktrace: │ [1] error(s::String) │ @ Base error.jl:56 │ [2] __require_prelocked(pkg::Base.PkgId, env::String) │ @ Base loading.jl:2837 │ [3] _require_prelocked(uuidkey::Base.PkgId, env::String) │ @ Base loading.jl:2685 │ [4] macro expansion │ @ loading.jl:2599 [inlined] │ [5] macro expansion │ @ lock.jl:376 [inlined] │ [6] __require(into::Module, mod::Symbol) │ @ Base loading.jl:2563 │ [7] require(into::Module, mod::Symbol) │ @ Base loading.jl:2539 [inlined] │ [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String) │ @ Base module.jl:36 [inlined] │ [9] eval_import_path_all(at::Module, path::Expr, keyword::String) │ @ Base module.jl:60 │ [10] _eval_using(to::Module, path::Expr, flags::UInt8) │ @ Base module.jl:137 [inlined] │ [11] eval_using(to::Module, path::Expr) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:130 │ [12] top-level scope │ @ ~/.julia/packages/ToolipsSession/wK5tg/src/ToolipsSession.jl:72 │ [13] include(mod::Module, _path::String) │ @ Base Base.jl:325 │ [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) │ @ Base loading.jl:3303 │ [15] top-level scope │ @ stdin:5 │ [16] eval(m::Module, e::Any) │ @ Core boot.jl:522 │ [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [18] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [inlined] │ [19] exec_options(opts::Base.JLOptions) │ @ Base client.jl:353 │ [20] _start() │ @ Base client.jl:596 │ in expression starting at /home/pkgeval/.julia/packages/ToolipsSession/wK5tg/src/ToolipsSession.jl:1 │ in expression starting at stdin:5 └ ┌ ToolipsUploader │ [Output was shown above] └ ┌ Toolips │ ┌ Info: JuliaLowering threw given input: │ │ code = │ │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =# Core.@doc "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" mutable struct Route{T <: AbstractConnection} <: AbstractHTTPRoute │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:855 =# │ │ path::String │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:856 =# │ │ page::Function │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ │ function Route(path::String, f::Function) │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:858 =# │ │ params = ((methods(f))[1]).sig.parameters │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# │ │ rtype::Type{<:AbstractConnection} = Connection │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:860 =# │ │ if length(params) > 1 │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:861 =# │ │ if params[2] <: AbstractConnection │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:862 =# │ │ rtype = params[2] │ │ end │ │ end │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:865 =# │ │ new{rtype}(path, f) │ │ end │ │ end) │ │ st0 = │ │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,context,syntax_flags,name_val,meta,value,jl_source,is_toplevel_thunk,source │ │ [macrocall] | │ │ @doc :: Identifier | mod=Core │ │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) :: Value | │ │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value | │ │ [struct] | │ │ true :: Value | │ │ [<:] | │ │ [curly] | │ │ Route :: Identifier | │ │ [<:] | │ │ T :: Identifier | │ │ AbstractConnection :: Identifier | │ │ AbstractHTTPRoute :: Identifier | │ │ [block] | │ │ [::] | │ │ path :: Identifier | │ │ String :: Identifier | │ │ [::] | │ │ page :: Identifier | │ │ Function :: Identifier | │ │ [function] | │ │ [call] | │ │ Route :: Identifier | │ │ [::] | │ │ path :: Identifier | │ │ String :: Identifier | │ │ [::] | │ │ f :: Identifier | │ │ Function :: Identifier | │ │ [block] | │ │ [=] | │ │ params :: Identifier | │ │ [.] | │ │ [.] | │ │ [ref] | │ │ [call] | │ │ methods :: Identifier | │ │ f :: Identifier | │ │ 1 :: Value | │ │ [inert] | │ │ sig :: Identifier | │ │ [inert] | │ │ parameters :: Identifier | │ │ [=] | │ │ [::] | │ │ rtype :: Identifier | │ │ [curly] | │ │ Type :: Identifier | │ │ [<:] | │ │ AbstractConnection :: Identifier | │ │ Connection :: Identifier | │ │ [if] | │ │ [call] | │ │ > :: Identifier | │ │ [call] | │ │ length :: Identifier | │ │ params :: Identifier | │ │ 1 :: Value | │ │ [block] | │ │ [if] | │ │ [<:] | │ │ [ref] | │ │ params :: Identifier | │ │ 2 :: Value | │ │ AbstractConnection :: Identifier | │ │ [block] | │ │ [=] | │ │ rtype :: Identifier | │ │ [ref] | │ │ params :: Identifier | │ │ 2 :: Value | │ │ [call] | │ │ [curly] | │ │ new :: Identifier | │ │ rtype :: Identifier | │ │ path :: Identifier | │ │ f :: Identifier | │ │ │ │ st1 = │ │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,context,syntax_flags,name_val,meta,value,jl_source,is_toplevel_thunk,source │ │ [block] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ [if] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ true :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ [=] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ val :: Identifier | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ [struct] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ true :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Route :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ T :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ AbstractConnection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ AbstractHTTPRoute :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ path :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ String :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ page :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Function :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [function] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Route :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ path :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ String :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ f :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Function :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [=] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [.] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [.] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [ref] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ methods :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ f :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ 1 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ sig :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ parameters :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [=] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [::] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ rtype :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Type :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ AbstractConnection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Connection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [if] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ > :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ length :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ 1 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [if] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [<:] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [ref] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ 2 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ AbstractConnection :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [block] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [=] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ rtype :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [ref] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ params :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ 2 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ new :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ rtype :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ path :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ f :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ Base.Docs.doc! :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ Toolips :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Base.Docs.Binding :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Toolips :: Value | [old,SL(9oRwIvwlK8X,Base,SL(1zcVTKYhMMQ,Toolips,)),(. Base (inert @__MODULE__))], │ │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc],jl_source=L47 │ │ Route :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Base.Docs.docstr :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Core.svec :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Dict{Symbol, Any} :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ :linenumber => 814 :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ :module => Toolips :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Pair :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [inert] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ fields :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [call] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Dict{Symbol, Any} :: Value | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [curly] | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ Union :: Identifier | [old,SL(1zcVTKYhMMQ,Toolips,),@doc], │ │ [if] | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ true :: Value | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ val :: Identifier | [old,SL(E9CT8N5N1hJ,Base.Docs,SL(1zcVTKYhMMQ,Toolips,)),@doc], │ │ │ │ file = "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" │ │ line = 814 │ └ mod = Toolips │ ERROR: LoadError: internal lowering bug: │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# - `jl_assert(!(haskey(ssa_rewrites, lhs_id)), _)`: multiple assignments to ssavalue │ Expression: │ (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) │ Containing expressions: │ (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) │ │ Detailed provenance: │ (= #₁₇ (call core.TypeVar :#T1 #₉₅/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:370 =# │ ├─ (= #₁₇ (call core.TypeVar :#T1 #₂₃/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/closure_conversion.jl:197 =# │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 #₂₃/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:274 =# │ │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:274 =# │ │ │ │ ├─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) │ │ │ │ │ ├─ (call core.TypeVar :#T1 AbstractConnection) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:3066 =# │ │ │ │ │ │ ├─ (<: AbstractConnection) │ │ │ │ │ │ │ ├─ (<: AbstractConnection) │ │ │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 │ │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ Stacktrace: │ [1] macro expansion │ @ /source/usr/share/julia/JuliaLowering/src/ast.jl:23 [inlined] │ [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1136 │ [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1257 │ [4] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:854 │ [5] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715 │ [6] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:809 │ [7] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715 │ [8] compile_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1037 │ [9] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1197 │ [10] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1287 │ [11] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33 │ [12] include(mapexpr::Function, mod::Module, _path::String) │ @ Base Base.jl:326 │ [13] top-level scope │ @ ~/.julia/packages/Toolips/JjQqz/src/Toolips.jl:144 │ [14] include(mod::Module, _path::String) │ @ Base Base.jl:325 │ [15] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) │ @ Base loading.jl:3303 │ [16] top-level scope │ @ stdin:5 │ [17] eval(m::Module, e::Any) │ @ Core boot.jl:522 │ [18] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [19] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [inlined] │ [20] exec_options(opts::Base.JLOptions) │ @ Base client.jl:353 │ [21] _start() │ @ Base client.jl:596 │ in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/Toolips.jl:11 │ in expression starting at stdin:5 └ ERROR: The following 3 packages failed to precompile: ToolipsSession Failed to precompile ToolipsSession [2fe55384-55bc-4df3-9d59-c817d405cd05] to "/home/pkgeval/.julia/compiled/v1.14/ToolipsSession/jl_q08lSk" (ProcessExited(1)). ToolipsUploader Failed to precompile ToolipsUploader [8d58c116-97a2-4dce-9816-d8d464dcb6e5] to "/home/pkgeval/.julia/compiled/v1.14/ToolipsUploader/jl_iEgOJv" (ProcessExited(1)). Toolips Failed to precompile Toolips [a47e2ad8-fcf7-417c-9746-32b9bdf220bd] to "/home/pkgeval/.julia/compiled/v1.14/Toolips/jl_NEMePn" (ProcessExited(1)). Loading failed after 265.4s ERROR: LoadError: failed process: Process(`/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so -g1 --check-bounds=yes --inline=yes --check-bounds=yes --pkgimages=existing -e 'using ToolipsUploader'`, ProcessExited(1)) [1] Stacktrace: [1] pipeline_error(proc::Base.Process) @ Base process.jl:612 [inlined] [2] run(::Cmd; wait::Bool) @ Base process.jl:525 [3] run(::Cmd) @ Base process.jl:522 [4] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:197 [5] include(mod::Module, _path::String) @ Base Base.jl:325 [6] exec_options(opts::Base.JLOptions) @ Base client.jl:355 [7] _start() @ Base client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:188 PkgEval failed after 1467.14s: package fails to precompile