Rose Trees to S-Expressions
type 'a rtree = Node of 'a * 'a rtree list type 'a sexpr = | Atom of 'a | List of 'a sexpr list
Implement the function
val sexpr_of_rtree : 'a rtree -> 'a sexpr
so that it's the right-inverse of rtree_of_sexpr.
Examples
let t = Node ("foo", [Node ("bar", []); Node ("baz", [])]) let _ = assert (rtree_of_sexpr (sexpr_of_rtree t) = Some t)