Skip to content

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.