Assume a function that takes a type and returns a type, which is a typed list using that type. The function definition is here:
https://notwikilambda.toolforge.org/wiki/ZObject:Z10046
The implementation of that function should look like this, but this cannot be saved currently:
{ "Z1K1": "Z14", "Z14K1": "Z10046", "Z14K2": { "Z1K1": "Z4", "Z4K1": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z18", "Z18K1": "Z10046K1" } }, "Z4K2": [{ "Z1K1": "Z3", "Z3K1": { "Z1K1": "Z18", "Z18K1": "Z10046K1" }, "Z3K2": "K1", "Z3K3": { "Z1K1": "Z12", "Z12K1": [] } }, { "Z1K1": "Z3", "Z3K1": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z18", "Z18K1": "Z10046K1" } }, "Z3K2": "K1", "Z3K3": { "Z1K1": "Z12", "Z12K1": [] } }], "Z4K3": "Z110" } }
This would return a type where the first key is of the type that is given as an argument, and the second key is of the type that is being created here (note the recursion).