use the type system to ensure correct usage of WirePointer accessors