fun {FromString S Stack}
case S
of nil then case Stack of [V] then V end
[] &"|S then {ReadString S nil Stack}
[] &u|S then {FromString S unit|Stack}
[] &t|S then {FromString S true|Stack}
[] &f|S then {FromString S false|Stack}
[] &n|S then {FromString S nil|Stack}
[] &A|S then {FromString S {String.toAtom Stack.1}|Stack.2}
[] &I|S then {FromString S {String.toInt Stack.1}|Stack.2}
[] &F|S then {FromString S {String.toFloat Stack.1}|Stack.2}
[] &||S then {FromString S (Stack.1|Stack.2.1)|Stack.2.2}
[] &T|S then {FromString S {List.toTuple Stack.1.1 Stack.1.2}|Stack.2}
[] &R|S then {FromString S {List.toRecord Stack.1.1 Stack.1.2}|Stack.2}
end
end