go type system