Package evaluation to load Toolips on Julia 1.14.0-DEV.2593 (15c2b67521*) started at 2026-07-03T20:33:39.179 ################################################################################ # Set-up # Set-up completed after 0.15s ################################################################################ # Installation # Installing Toolips... Resolving package versions... Installed ConcurrentUtilities ─ v2.5.1 Installed CodecZlib ─────────── v0.7.8 Installed ExceptionUnwrapping ─ v0.1.11 Installed URIs ──────────────── v1.6.1 Installed Toolips ───────────── v0.3.15 Installed MbedTLS ───────────── v1.1.10 Installed TranscodingStreams ── v0.11.3 Installed PrecompileTools ───── v1.3.4 Installed BitFlags ──────────── v0.1.10 Installed LoggingExtras ─────── v1.2.0 Installed SimpleBufferStream ── v1.2.0 Installed OpenSSL ───────────── v1.6.1 Installed ToolipsServables ──── v0.2.11 Installed Preferences ───────── v1.5.2 Installed JLLWrappers ───────── v1.8.0 Installed HTTP ──────────────── v1.11.0 Installed MbedTLS_jll ───────── v2.28.1010+0 Installed Crayons ───────────── v4.1.1 Installed ParametricProcesses ─ v0.1.3 Installing 1 artifacts Installed artifact MbedTLS 1.0 MiB Updating `~/.julia/environments/v1.14/Project.toml` [a47e2ad8] + Toolips v0.3.15 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 [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.36s ################################################################################ # 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... 35.0 s ✓ URIs 35.1 s ✓ BitFlags 50.6 s ✓ TranscodingStreams 0.9 s ✓ SimpleBufferStream 2.4 s ✓ Crayons 2.2 s ✓ ConcurrentUtilities 19.0 s ✓ ParametricProcesses 201.3 s ✓ ToolipsServables 29.1 s ✓ LoggingExtras 28.6 s ✓ Preferences 36.5 s ✓ ExceptionUnwrapping 76.8 s ✓ OpenSSL 19.6 s ✓ CodecZlib 32.1 s ✓ JLLWrappers 31.5 s ✓ PrecompileTools 32.1 s ✓ MbedTLS_jll 33.1 s ✓ MbedTLS 160.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(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ [if] | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ true :: Value | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ [=] | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ val :: Identifier | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ [struct] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ true :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [<:] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [curly] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Route :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [<:] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ T :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ AbstractHTTPRoute :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [block] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [::] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ path :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ String :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [::] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ page :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Function :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [function] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Route :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [::] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ path :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ String :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [::] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ f :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Function :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [block] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [=] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ params :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [.] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [.] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [ref] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ methods :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ f :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ 1 :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [inert] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ sig :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [inert] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ parameters :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [=] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [::] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ rtype :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [curly] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Type :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [<:] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Connection :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [if] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ > :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ length :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ params :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ 1 :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [block] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [if] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [<:] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [ref] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ params :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ 2 :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [block] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [=] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ rtype :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [ref] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ params :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ 2 :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [curly] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ new :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ rtype :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ path :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ f :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ Base.Docs.doc! :: Value | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ Toolips :: Value | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Base.Docs.Binding :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Toolips :: Value | [old,SL(BksxOhRO4Fc,Base,SL(5MxciK9Lt6t,Toolips,)),(. Base (inert @__MODULE__))], │ [inert] | [old,SL(5MxciK9Lt6t,Toolips,),@doc],jl_source=L47 │ Route :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Base.Docs.docstr :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Core.svec :: Value | [old,SL(5MxciK9Lt6t,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(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ :linenumber => 814 :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ :module => Toolips :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Pair :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [inert] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ fields :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [call] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [curly] | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ Union :: Identifier | [old,SL(5MxciK9Lt6t,Toolips,),@doc], │ [if] | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ true :: Value | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,Toolips,)),@doc], │ val :: Identifier | [old,SL(GTflj5DoOpJ,Base.Docs,SL(5MxciK9Lt6t,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 18 dependencies successfully precompiled in 1070 seconds. 31 already precompiled. Precompilation completed after 1096.47s ################################################################################ # Loading # Loading 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(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ [if] | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ true :: Value | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ [=] | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ val :: Identifier | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ [struct] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ true :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [<:] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [curly] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Route :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [<:] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ T :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ AbstractHTTPRoute :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [block] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [::] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ path :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ String :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [::] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ page :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Function :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [function] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Route :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [::] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ path :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ String :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [::] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ f :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Function :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [block] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [=] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ params :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [.] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [.] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [ref] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ methods :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ f :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ 1 :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [inert] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ sig :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [inert] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ parameters :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [=] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [::] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ rtype :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [curly] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Type :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [<:] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Connection :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [if] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ > :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ length :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ params :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ 1 :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [block] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [if] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [<:] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [ref] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ params :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ 2 :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ AbstractConnection :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [block] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [=] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ rtype :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [ref] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ params :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ 2 :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [curly] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ new :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ rtype :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ path :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ f :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ Base.Docs.doc! :: Value | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ Toolips :: Value | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Base.Docs.Binding :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Toolips :: Value | [old,SL(9MZcHF1hXiF,Base,SL(Hxi9ptfn5mE,Toolips,)),(. Base (inert @__MODULE__))], │ [inert] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc],jl_source=L47 │ Route :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Base.Docs.docstr :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Core.svec :: Value | [old,SL(Hxi9ptfn5mE,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(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ :linenumber => 814 :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ :module => Toolips :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Pair :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [inert] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ fields :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [call] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Dict{Symbol, Any} :: Value | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [curly] | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ Union :: Identifier | [old,SL(Hxi9ptfn5mE,Toolips,),@doc], │ [if] | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ true :: Value | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,Toolips,)),@doc], │ val :: Identifier | [old,SL(QWyHrN6XDZ,Base.Docs,SL(Hxi9ptfn5mE,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 1 dependency had output during precompilation: ┌ Toolips │ [Output was shown above] └ ERROR: The following 1 package failed to precompile: Toolips Failed to precompile Toolips [a47e2ad8-fcf7-417c-9746-32b9bdf220bd] to "/home/pkgeval/.julia/compiled/v1.14/Toolips/jl_eIH3ay" (ProcessExited(1)). Loading failed after 251.04s 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 Toolips'`, 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 1385.27s: package fails to precompile