I prefer to use Foo.init instead of initFoo and it's possible to define such functions with both type and typedesc. So - what's the difference between typedesc and type in this context? Is it ok to use type (it's shorter than typedesc and looks better).
type Price = tuple[price: float, currency: string]
proc init*(_: type[Price], price: float, currency: string): Price =
(price, currency)
echo Price.init(2.0, "USD")