+let npunct_of_punct = function
+ | G.Branch loc -> G.NBranch loc
+ | G.Shift loc -> G.NShift loc
+ | G.Pos (loc, i) -> G.NPos (loc, i)
+ | G.Wildcard loc -> G.NWildcard loc
+ | G.Merge loc -> G.NMerge loc
+ | G.Semicolon loc -> G.NSemicolon loc
+ | G.Dot loc -> G.NDot loc
+;;
+let nnon_punct_of_punct = function
+ | G.Skip loc -> G.NSkip loc
+ | G.Unfocus loc -> G.NUnfocus loc
+ | G.Focus (loc,l) -> G.NFocus (loc,l)
+;;
+let npunct_of_punct = function
+ | G.Branch loc -> G.NBranch loc
+ | G.Shift loc -> G.NShift loc
+ | G.Pos (loc, i) -> G.NPos (loc, i)
+ | G.Wildcard loc -> G.NWildcard loc
+ | G.Merge loc -> G.NMerge loc
+ | G.Semicolon loc -> G.NSemicolon loc
+ | G.Dot loc -> G.NDot loc
+;;
+