support for custom types, part 1
support for external types, first compilable test