An alternative interface is provided for declaring FFI functions inline within normal Ur/Web modules. This facility must be opted into with the lessSafeFfi .urp directive, since it breaks a crucial property, allowing code in a .ur file to break basic invariants of the Ur/Web type system. Without this option, one only needs to audit .urp files to be sure an application obeys the type-system rules. The alternative interface may be more convenient for such purposes as declaring an FFI function typed in terms of some type local to a module.
When the less safe mode is enabled, declarations like this one are accepted, at the top level of a .ur file:
ffi foo : int -> int