# Getting issue with genie for function

**URL:** https://discourse.julialang.org/t/getting-issue-with-genie-for-function/118834
**Category:** New to Julia
**Tags:** question
**Created:** [August 31, 2024, 8:19am UTC](https://discourse.julialang.org/t/getting-issue-with-genie-for-function/118834 "2024-08-31T08:19:18Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Shiva\_raj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shiva_raj/32/50626_2.png) [@Shiva\_raj](https://discourse.julialang.org/u/Shiva_raj)
#### Post date: [August 31, 2024, 8:19am UTC](https://discourse.julialang.org/t/getting-issue-with-genie-for-function/118834/1 "2024-08-31T08:19:18Z")

</div>

HI team  
I am facing issue with Genie while running below code for julie.

```julia
module App
using Genie.Router
using Genie
export vertical_addition

function vertical_addition(numbers::Vector{Union{Int, Float64}})
    # Convert numbers to strings for vertical display
    num_strs = map(string, numbers)

    # Calculate the sum of the numbers
    sum_result = sum(numbers)
    sum_str = string(sum_result)

    # Find the maximum length for padding
    max_len = maximum([length(num_str) for num_str in num_strs]..., length(sum_str))

    # Pad each number string for vertical alignment
    padded_numbers = map(num_str -> lpad(num_str, max_len), num_strs)
    sum_str = lpad(sum_str, max_len)

    # Prepare the vertical format with steps
    steps = join(padded_numbers, "\n+\n")
    steps *= "\n" * repeat("-", max_len) * "\n" * sum_str

    return steps
end
end

using .App
using Genie
using Genie.Router
using Genie.Requests

route("/vertical_addition") do
  # Get all query parameters (assumed to be numbers)
  params_dict = params()

  # Parse the numbers as either integers or floating-point values
  parsed_numbers = [tryparse(Float64, string(value)) for value in values(params_dict) if tryparse(Float64, string(value)) !== nothing]

  # Handle case where no valid numbers are provided
  if isempty(parsed_numbers)
      return text("No valid numbers were provided.")
  end

  # Call the vertical_addition function
  result = App.vertical_addition(parsed_numbers)

  # Return the result as a plain text response
  text(result)
end

```

---

<div class="post-metadata">

### Author: ![Shiva\_raj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shiva_raj/32/50626_2.png) [@Shiva\_raj](https://discourse.julialang.org/u/Shiva_raj)
#### Post date: [August 31, 2024, 8:19am UTC](https://discourse.julialang.org/t/getting-issue-with-genie-for-function/118834/2 "2024-08-31T08:19:53Z")

</div>

getting below error

```julia
 ┌ Error: MethodError: no method matching vertical_addition(::Vector{Float64})
│
│ Closest candidates are:
│ vertical_addition(!Matched::Vector{Union{Float64, Int64}})
│ @ Main.App /home/shiva/gitcode/Maths-project/module/Basic_maths/add-geni-api-1.jl:6
│

```

---

<div class="post-metadata">

### Author: ![bertschi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bertschi/32/33462_2.png) [@bertschi](https://discourse.julialang.org/u/bertschi)
#### Post date: [August 31, 2024, 9:35am UTC](https://discourse.julialang.org/t/getting-issue-with-genie-for-function/118834/3 "2024-08-31T09:35:06Z")

</div>

That’s because

```julia-repl
julia> Vector{Float64} <: Vector{Union{Int, Float64}}
false

# What you want is
julia> Vector{Float64} <: Vector{<:Union{Int, Float64}}
true

```

i.e., change your type signature of `vertical_addition` to `numbers::Vector{<:Union{Int, Float64}}` (or more generally `numbers::AbstractVector{<:Real}`) and read about [type variance](https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)) in the [Julia docs](https://docs.julialang.org/en/v1/manual/types/#Parametric-Types).
