Top level const is supported by passing by val, otherwise we pass by var
val
var
Note that function pointer types are C function pointers A-->B.
A-->B