// output of ./demo/ds/coroutine-paren-demo.cc:
// Description:
//% Generate all well-formed pairs of parentheses using coroutines.

arg 1: 5 == n  [Number of paren pairs]  default=5
 #  0:   0 0 0 0 5   ((((()))))
 #  1:   0 0 0 1 4   (((()())))
 #  2:   0 0 0 2 3   (((())()))
 #  3:   0 0 0 3 2   (((()))())
 #  4:   0 0 0 4 1   (((())))()
 #  5:   0 0 1 0 4   ((()(())))
 #  6:   0 0 1 1 3   ((()()()))
 #  7:   0 0 1 2 2   ((()())())
 #  8:   0 0 1 3 1   ((()()))()
 #  9:   0 0 2 0 3   ((())(()))
 # 10:   0 0 2 1 2   ((())()())
 # 11:   0 0 2 2 1   ((())())()
 # 12:   0 0 3 0 2   ((()))(())
 # 13:   0 0 3 1 1   ((()))()()
 # 14:   0 1 0 0 4   (()((())))
 # 15:   0 1 0 1 3   (()(()()))
 # 16:   0 1 0 2 2   (()(())())
 # 17:   0 1 0 3 1   (()(()))()
 # 18:   0 1 1 0 3   (()()(()))
 # 19:   0 1 1 1 2   (()()()())
 # 20:   0 1 1 2 1   (()()())()
 # 21:   0 1 2 0 2   (()())(())
 # 22:   0 1 2 1 1   (()())()()
 # 23:   0 2 0 0 3   (())((()))
 # 24:   0 2 0 1 2   (())(()())
 # 25:   0 2 0 2 1   (())(())()
 # 26:   0 2 1 0 2   (())()(())
 # 27:   0 2 1 1 1   (())()()()
 # 28:   1 0 0 0 4   ()(((())))
 # 29:   1 0 0 1 3   ()((()()))
 # 30:   1 0 0 2 2   ()((())())
 # 31:   1 0 0 3 1   ()((()))()
 # 32:   1 0 1 0 3   ()(()(()))
 # 33:   1 0 1 1 2   ()(()()())
 # 34:   1 0 1 2 1   ()(()())()
 # 35:   1 0 2 0 2   ()(())(())
 # 36:   1 0 2 1 1   ()(())()()
 # 37:   1 1 0 0 3   ()()((()))
 # 38:   1 1 0 1 2   ()()(()())
 # 39:   1 1 0 2 1   ()()(())()
 # 40:   1 1 1 0 2   ()()()(())
 # 41:   1 1 1 1 1   ()()()()()
