Basic support for complex types