code:
def foo(obj : Pointer(T) | T) forall T
{% begin %}
p "{{ T.name }}"
{% end %}
end
def bar(obj : T | Pointer(T)) forall T
{% begin %}
p "{{ T.name }}"
{% end %}
end
v = 1_32
p = pointerof(v)
foo p
bar p
output:
"Int32"
"Pointer(Int32)"