The interface defined in this section allows the user to load shared 
libraries (.so files on most Unix systems, .dll 
files on Windows). This interface is portable to Windows as well as to 
Unix machines providing dlopen(2) (Solaris, Linux, 
FreeBSD, Irix and many more) or shl_open(2) (HP/UX). It 
is advised to use the predicates from section 
9.4 in your application.
open_shared_object(File, [], Handle). See also
load_foreign_library/[1,2].
On errors, an exception shared_object(Action, Message) 
is raised. Message is the return value from dlerror().
now implies the 
symbols are resolved immediately rather than lazy (default). global 
implies symbols of the loaded object are visible while loading other 
shared objects (by default they are local). Note that these flags may 
not be supported by your operating system. Check the documentation of 
dlopen() or equivalent on your operating system. Unsupported flags are 
silently ignored.