The simple answer is Parrot won't do any automatic mapping of types
between HLLs. If you call a Python library function that returns a
Python Dictionary type, you'll get back a Python Dictionary PMC. You can
interact with it as a string keyed hash (because it implements the
string keyed vtable functions), but if you want to access its more
advanced methods you'll have to make method calls on the PMC.
We are absolutely *not* trying to hide the multi-lingual nature of the
VM from the users. The multi-lingual nature of Parrot is one of its
primary competitive advantages. The basic principle of loading libraries
is "you have to learn the interface for the library and the kinds of
values it returns", which is true whether the library is written in the
same language as your code or a different language. In general, using a
Python library and having it return a different type than the
documentation says would more confusing than it would be helpful.
Any automatic mapping between multiple languages will fall down at some
point in a very ugly way. I imagine modules will be developed to allow
you to, for example, mask all Python types from within your Perl 6 code
as Perl 6 types. But users will always have the ability to go back to
the default, unmodified access to the real types.
Allison