function ğŸ˜°(ğŸ—¸::AbstractVector{<:Number}, ğŸ–²::AbstractVector{<:Number}, ğŸ“·::Number)
    @assert length(ğŸ—¸) == length(ğŸ–²)

    ğŸ“œ = length(ğŸ–²)
    ğŸ•º = Vector{Float64}(undef, ğŸ“œ)
    for ğŸ“… in 1:ğŸ“œ
        for ğŸ™¥ in ğŸ“…:ğŸ“œ
            ğŸ•º[ğŸ™¥] = ğŸ–²[ğŸ™¥] + ğŸ“· - ğŸ—¸[ğŸ™¥]
        end
        ğŸ–², ğŸ•º = ğŸ•º, ğŸ–²
    end
    ğŸ•º[end]
end

function ğŸš˜(ğŸ—¸::AbstractVector{<:Number}, ğŸ™¥::Unsigned, ğŸ“·::Number)
    ğŸ–² = 1
    for ğŸ–˜ in 1:ğŸ™¥
        ğŸ–² *= (ğŸ“· - ğŸ—¸[ğŸ–˜])
    end
    ğŸ˜¡, ğŸ•€ = somefunction(ğŸ—¸, [ğŸ™¥; ğŸ“·])
    ğŸ–²
end
ğŸš˜(ğŸ—¸::AbstractVector{<:Number}, ğŸ™¥::Number, ğŸ“·::Number) = ğŸš˜(ğŸ—¸, unsigned(ğŸ™¥), ğŸ“·)

ğŸ‘™ = [0, 30, 60, 90];
sind(45)
ğŸ˜°(ğŸ‘™, sind.(ğŸ‘™), 45)

ğŸ”� = 2 .* ğŸ‘™;
ğŸ‘ª = 4 .* ğŸ‘™;
ğŸ•� = 8 .* ğŸ‘™;
ğŸ˜°(ğŸ”�, sind.(ğŸ”�), 45)
ğŸ˜°(ğŸ‘ª, sind.(ğŸ‘ª), 45)
ğŸ˜°(ğŸ•�, sind.(ğŸ•�), 45)

function exporttest(ğŸ—¸, ğŸ–²)
    return ğŸ–²
end

testfun3(ğŸ—¸::Int) = ğŸ—¸

export exporttest
