"<*>\n+ <*>\n| + pure (\\u1 -> (\\u2 -> u2 Term))\n| ` <|>\n| + <*>\n| | + <*>\n| | | + pure (\\u1 -> (\\u2 -> (\\u3 -> u2 u3)))\n| | | ` satisfy\n| | ` rec \n| ` pure (\\u1 -> u1)\n` <|>\n + <*>\n | + <*>\n | | + <*>\n | | | + pure (\\u1 -> (\\u2 -> (\\u3 -> (\\u4 -> (u1 u2) (u3 u4)))))\n | | | ` conditional\n | | | + look\n | | | | ` satisfy\n | | | + bs\n | | | | + <*>\n | | | | | + pure (\\u1 -> (\\u2 -> cons Term))\n | | | | | ` satisfy\n | | | | + <*>\n | | | | | + pure (\\u1 -> (\\u2 -> cons Term))\n | | | | | ` satisfy\n | | | | + <*>\n | | | | | + pure (\\u1 -> (\\u2 -> cons Term))\n | | | | | ` satisfy\n | | | | + <*>\n | | | | | + pure (\\u1 -> (\\u2 -> cons Term))\n | | | | | ` satisfy\n | | | | + <*>\n | | | | | + pure (\\u1 -> (\\u2 -> cons Term))\n | | | | | ` satisfy\n | | | | + <*>\n | | | | | + pure (\\u1 -> (\\u2 -> cons Term))\n | | | | | ` satisfy\n | | | | ` <*>\n | | | | + <*>\n | | | | | + <*>\n | | | | | | + <*>\n | | | | | | | + pure (\\u1 -> (\\u2 -> (\\u3 -> (\\u4 -> (\\u5 -> cons (Term u3))))))\n | | | | | | | ` satisfy\n | | | | | | ` ref \n | | | | | ` rec \n | | | | ` satisfy\n | | | ` empty\n | | ` ref \n | ` rec \n ` pure (\\u1 -> u1)\n"