add more tests and comments
add another test
Ha! I knew there was a bug in there somewhere!

From inspecting the code through to creating the testcase took a while,
but passing structs by val is the key to breaking asyncify this time.