pugs function type
As reported by @labourasse and @JuliePATELA, function type checking is buggy.
Especially, functions returning 0 such as
let f: R^2 -> R^2, x -> 0;
may be interpreted as functions of R^2 -> R, or R^2 -> R^3 for instance which is obviously not desirable.
Moreover incorrect constructions like
let g: R^2 -> R^3, x -> (1,2,3);
let h: R^2 -> R^2, x -> g(x);
should crash on h's definition, since the image spaces are different.
However, the error is only reported when the function is used.