@@ -42,13 +42,21 @@ Make1{T}(x) where {T} = Make{T}(x)
4242Make2 {T} (x, y) where {T} = Make {T} (x, y)
4343Make3 {T} (x, y, z) where {T} = Make {T} (x, y, z)
4444
45- # default maketype & make
45+ # default maketype & make & Make(...)
46+
47+ # Make(...) is not meant to be specialized, i.e. Make(a, b, c) always create a Make3,
48+ # and is equal to the *default* make(...)
49+ # (it's a fall-back for client code which can help break recursivity)
50+ # TODO : add tests for Make(...)
51+
4652maketype (:: Type{T} , x... ) where {T} = T
4753
54+ Make (:: Type{T} , x... ) where {T} = Make {maketype(T, x...)} (x... )
4855make (:: Type{T} , x... ) where {T} = Make {maketype(T, x...)} (x... )
4956
5057# make(x) is defined in sampling.jl, and is a special case wrapping already valid
5158# distributions (explicit or implicit)
59+ Make (x1, x2, xs... ) = Make {maketype(x1, x2, xs...)} (x1, x2, xs... )
5260make (x1, x2, xs... ) = Make {maketype(x1, x2, xs...)} (x1, x2, xs... )
5361
5462find_deduced_type (:: Type{T} , :: X , ) where {T,X} = deduce_type (T, gentype (X))
0 commit comments