I tried to change the source code to remove the literal only restriction. Sadly, I quickly realized why they took that route. Indeed, any other way results in unpredictable output types. Adding the fact that you cannot cast structs, it becomes apparent that they will not be able to address this concern easily.