Package precompilation error on Julia 1.8

Running this code in the REPL (rather than precompile in a package) in 1.8 throws a slightly different error that might hint at a cause. It does not cause this on 1.7

module M
        struct MyType; end
        function Base.:(==)(s1::Union{Float64, MyType, Nothing}, s2::Union{Float64, MyType, Nothing})
         ......
        end
end
│   exception =
│    MethodError: ==(::Float64, ::Float64) is ambiguous. Candidates:
│      ==(x::T, y::T) where T<:Union{Float16, Float32, Float64} in Base at float.jl:410
│      ==(s1::Union{Nothing, Main.M.MyType, Float64}, s2::Union{Nothing, Main.M.MyType, Float64}) in Main.M at REPL[1]:3
│    Possible fix, define
│      ==(::Float64, ::Float64)
│    Stacktrace:
│      [1] ==(x::Float64, y::Int64)
│        @ Base .\float.jl:448
│      [2] edit_insert(s::REPL.LineEdit.PromptState, c::Union{Char, SubString{String}, String})
│        @ REPL.LineEdit C:\Users\avik\.julia\juliaup\julia-1.8.2+0.x64\share\julia\stdlib\v1.8\REPL\src\LineEdit.jl:0
│      [3] edit_insert(s::REPL.LineEdit.MIState, args::Any)
│        @ REPL.LineEdit C:\Users\avik\.julia\juliaup\julia-1.8.2+0.x64\share\julia\stdlib\v1.8\REPL\src\LineEdit.jl:239
│      [4] (::REPL.LineEdit.var"#137#191")(s::REPL.LineEdit.MIState, data::Any, c::Union{Char, SubString{String}, String})