Hi Christian!
I have two more beginner questions: I ran into texts mentioning types of "mutable" data.
Does that mean the data is actually changed in place? How would I go about implementing such a data type,
as I expect much higher performance in some applications? Do I do that with the Foreign module and Ptr
types?
The second question is this: say I have some functions working with a data type, say a graph.
Some of them might want to change the graph and return a new graph as a result.
If they change say only one graph node, it would be extremely bad for performance if the whole graph got copied
any time such a change takes place. Is the compiler smart enough to make the code only copy the parts
that have changed (copying lazily, so to speak)? Is that even possible?