ref: 646b3dd8476232930872ac776c0a5a07d3472f32 thon/examples/auto-natlist.thon -rw-r--r-- 199 bytes
Further elaborate datatypes to include an expose function

It's kind of a hacky solution for now, but it works ok I guess. You can
unpack a datatype by saying "exposeYourDatatypeName" and that'll unfold

and fix order of binding for the two sides of the datatype decl
elaborateDatatypes first impl

Still need to use the shiftDeBruijin functions to changes some db
indexes around. Also need to change the shiftDeBruijin functions to only
shift indexes that are sufficiently large (reach outside their local