Non-nullable unwrapped tag unions are represented directly as the type
of their singleton variant in morphic. Other recursive tag unions are
something like `(heap_cell, union [A, B (<rec>)])` for recursive union
`[A, B (<rec>)]`, but a non-nullable unwrapped tag union `[ Foo Str <rec> ]`
is represented directly as the tuple `(Str <rec>)`. Make sure we don't
try to unwrap a non-existent heap cell and union data for such type
representations.
Closes#3261