Robin Green wrote:
I can't imagine an impure function which has a completely pure
implementation. Examples of the reverse are easy to come up with, however.

Can you give an example of when this might happen?

I'm thinking of examples where you want to expose a library interface that allows impurity, even though your present implementation is pure. This would make sense only to enable forward compatibility.

Perhaps the piece you're missing is that abstract types in FFI modules
may be implemented with arbitrary C types, with no restrictions?  (They
may even be implemented with structs (not just struct pointers)!)
Yes, I was indeed missing that. But... how does Urweb know how much stack
space to allocate for them - does it parse the .h files? Or is there
something about x86 calling conventions that I'm missing?

The Ur/Web compiler works by generating C code to pass to GCC, so any library presentation via header files that works for normal C code will work for Ur/Web FFI libraries.

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to