type Option*[T] {.incompleteStruct.} = object
type Result*[T, E] {.incompleteStruct.} = object
type String* {.incompleteStruct.} = object
type Vec*[T] {.incompleteStruct.} = object
proc root*(a: ptr Vec[String],
b: ptr Option[int32],
c: ptr Result[int32, String]) {.importc: "root".}