@Stefan_Salewski is right
Change to that
proc pt*[N:SomeNumber](x, y, z:N):tuple[x,y,z:float] =
return (x: x.float, y: y.float, z: z.float)
let t1 = pt(0,0,0)
let t2 = pt(0.1, 0, 0)
let t3 = pt(0.1, 0.3, 0)
let t4 = pt(0.0, 0.3, 0) #<-----
echo t1
echo t2
echo t3
echo t4
Run
Or that
proc pt*(x, y, z:float):tuple[x,y,z:float] =
# ^^^^^
return (x: x.float, y: y.float, z: z.float)
let t1 = pt(0,0,0)
let t2 = pt(0.1, 0, 0)
let t3 = pt(0.1, 0.3, 0)
let t4 = pt(0, 0.3, 0) #<-----
echo t1
echo t2
echo t3
echo t4
Run