{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Traversing Datastructures with Zippers\n",
    "This notebook is about using the \"zipper\" with joy datastructures.  See the [Zipper wikipedia entry](https://en.wikipedia.org/wiki/Zipper_%28data_structure%29) or the original paper: [\"FUNCTIONAL PEARL The Zipper\" by Gérard Huet](https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/huet-zipper.pdf)\n",
    "\n",
    "\n",
    "Given a datastructure on the stack we can navigate through it, modify it, and rebuild it using the \"zipper\" technique."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Trees\n",
    "In Joypy there aren't any complex datastructures, just ints, floats, strings, Symbols (strings that are names of functions) and sequences (aka lists, aka quoted literals, aka aggregates, etc...), but we can build [trees](https://en.wikipedia.org/wiki/Tree_%28data_structure%29) out of sequences."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 [2 [3 4 25 6] 7] 8]"
     ]
    }
   ],
   "source": [
    "[1 [2 [3 4 25 6] 7] 8]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Zipper in Joy\n",
    "Zippers work by keeping track of the current item, the already-seen items, and the yet-to-be seen items as you traverse a datastructure (the datastructure used to keep track of these items is the zipper.)\n",
    "\n",
    "In Joy we can do this with the following words:\n",
    "\n",
    "    z-down == [] swap uncons swap\n",
    "    z-up == swons swap shunt\n",
    "    z-right == [swons] cons dip uncons swap\n",
    "    z-left == swons [uncons swap] dip swap\n",
    "\n",
    "Let's use them to change 25 into 625.  The first time a word is used I show the trace so you can see how it works.  If we were going to use these a lot it would make sense to write Python versions for efficiency, but see below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 [2 [3 4 25 6] 7] 8]"
     ]
    }
   ],
   "source": [
    "[z-down [] swap uncons swap] inscribe\n",
    "[z-up swons swap shunt] inscribe\n",
    "[z-right [swons] cons dip uncons swap] inscribe\n",
    "[z-left swons [uncons swap] dip swap] inscribe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   [1 [2 [3 4 25 6] 7] 8] • z-down\n",
      "   [1 [2 [3 4 25 6] 7] 8] • [] swap uncons swap\n",
      "[1 [2 [3 4 25 6] 7] 8] [] • swap uncons swap\n",
      "[] [1 [2 [3 4 25 6] 7] 8] • uncons swap\n",
      "[] 1 [[2 [3 4 25 6] 7] 8] • swap\n",
      "[] [[2 [3 4 25 6] 7] 8] 1 • \n",
      "\n",
      "[] [[2 [3 4 25 6] 7] 8] 1"
     ]
    }
   ],
   "source": [
    "[z-down] trace"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "        [] [[2 [3 4 25 6] 7] 8] 1 • z-right\n",
      "        [] [[2 [3 4 25 6] 7] 8] 1 • [swons] cons dip uncons swap\n",
      "[] [[2 [3 4 25 6] 7] 8] 1 [swons] • cons dip uncons swap\n",
      "[] [[2 [3 4 25 6] 7] 8] [1 swons] • dip uncons swap\n",
      "                               [] • 1 swons [[2 [3 4 25 6] 7] 8] uncons swap\n",
      "                             [] 1 • swons [[2 [3 4 25 6] 7] 8] uncons swap\n",
      "                              [1] • [[2 [3 4 25 6] 7] 8] uncons swap\n",
      "         [1] [[2 [3 4 25 6] 7] 8] • uncons swap\n",
      "         [1] [2 [3 4 25 6] 7] [8] • swap\n",
      "         [1] [8] [2 [3 4 25 6] 7] • \n",
      "\n",
      "[1] [8] [2 [3 4 25 6] 7]"
     ]
    }
   ],
   "source": [
    "[z-right] trace"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [] [[3 4 25 6] 7] 2"
     ]
    }
   ],
   "source": [
    "z-down"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2] [7] [3 4 25 6]"
     ]
    }
   ],
   "source": [
    "z-right"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2] [7] [] [4 25 6] 3"
     ]
    }
   ],
   "source": [
    "z-down"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2] [7] [3] [25 6] 4"
     ]
    }
   ],
   "source": [
    "z-right"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2] [7] [4 3] [6] 25"
     ]
    }
   ],
   "source": [
    "z-right"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2] [7] [4 3] [6] 625"
     ]
    }
   ],
   "source": [
    "sqr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2] [7] [4 3] [6] 625 • z-up\n",
      "[1] [8] [2] [7] [4 3] [6] 625 • swons swap shunt\n",
      "[1] [8] [2] [7] [4 3] [625 6] • swap shunt\n",
      "[1] [8] [2] [7] [625 6] [4 3] • shunt\n",
      "  [1] [8] [2] [7] [3 4 625 6] • \n",
      "\n",
      "[1] [8] [2] [7] [3 4 625 6]"
     ]
    }
   ],
   "source": [
    "[z-up] trace"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] [8] [2 [3 4 625 6] 7]"
     ]
    }
   ],
   "source": [
    "z-up"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 [2 [3 4 625 6] 7] 8]"
     ]
    }
   ],
   "source": [
    "z-up"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## `dip` and `infra`\n",
    "In Joy we have the `dip` and `infra` combinators which can \"target\" or \"address\" any particular item in a Joy tree structure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 [2 [3 4 625 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] • infra\n",
      "                                           8 [2 [3 4 625 6] 7] 1 • [[[[[sqr] dipd] infra] dip] infra] dip [] swaack\n",
      "        8 [2 [3 4 625 6] 7] 1 [[[[[sqr] dipd] infra] dip] infra] • dip [] swaack\n",
      "                                             8 [2 [3 4 625 6] 7] • [[[[sqr] dipd] infra] dip] infra 1 [] swaack\n",
      "                  8 [2 [3 4 625 6] 7] [[[[sqr] dipd] infra] dip] • infra 1 [] swaack\n",
      "                                                 7 [3 4 625 6] 2 • [[[sqr] dipd] infra] dip [8] swaack 1 [] swaack\n",
      "                            7 [3 4 625 6] 2 [[[sqr] dipd] infra] • dip [8] swaack 1 [] swaack\n",
      "                                                   7 [3 4 625 6] • [[sqr] dipd] infra 2 [8] swaack 1 [] swaack\n",
      "                                      7 [3 4 625 6] [[sqr] dipd] • infra 2 [8] swaack 1 [] swaack\n",
      "                                                       6 625 4 3 • [sqr] dipd [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                 6 625 4 3 [sqr] • dipd [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                           6 625 • sqr 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                           6 625 • dup * 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                       6 625 625 • * 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                        6 390625 • 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                      6 390625 4 • 3 [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                    6 390625 4 3 • [7] swaack 2 [8] swaack 1 [] swaack\n",
      "                                                6 390625 4 3 [7] • swaack 2 [8] swaack 1 [] swaack\n",
      "                                                7 [3 4 390625 6] • 2 [8] swaack 1 [] swaack\n",
      "                                              7 [3 4 390625 6] 2 • [8] swaack 1 [] swaack\n",
      "                                          7 [3 4 390625 6] 2 [8] • swaack 1 [] swaack\n",
      "                                          8 [2 [3 4 390625 6] 7] • 1 [] swaack\n",
      "                                        8 [2 [3 4 390625 6] 7] 1 • [] swaack\n",
      "                                     8 [2 [3 4 390625 6] 7] 1 [] • swaack\n",
      "                                      [1 [2 [3 4 390625 6] 7] 8] • \n",
      "\n",
      "[1 [2 [3 4 390625 6] 7] 8]"
     ]
    }
   ],
   "source": [
    "[[[[[[sqr] dipd] infra] dip] infra] dip] [infra] trace"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you read the trace carefully you'll see that about half of it is the `dip` and `infra` combinators de-quoting programs and \"digging\" into the subject datastructure.  Instead of maintaining temporary results on the stack they are pushed into the pending expression (continuation).  When `sqr` has run the rest of the pending expression  rebuilds the datastructure.\n",
    "\n",
    "## `Z`\n",
    "Imagine a function `Z` that accepts a sequence of `dip` and `infra` combinators, a quoted program `[Q]`, and a datastructure to work on.  It would effectively execute the quoted program as if it had been embedded in a nested series of quoted programs, e.g.:\n",
    "\n",
    "       [...] [Q] [dip dip infra dip infra dip infra] Z\n",
    "    -------------------------------------------------------------\n",
    "       [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra\n",
    "       \n",
    "The `Z` function isn't hard to make."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": []
    }
   ],
   "source": [
    "clear"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": []
    }
   ],
   "source": [
    "[Z [[] ccons] step i] inscribe"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here it is in action in a simplified scenario."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                                                                   1 [2 3 4] • Z\n",
      "                                                                                   1 [2 3 4] • [[] ccons] step i\n",
      "                                                                        1 [2 3 4] [[] ccons] • step i\n",
      "                                                                        1 [2 3 4] [[] ccons] • [_step0] x i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • x i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • dup i i\n",
      "                                                      1 [2 3 4] [[] ccons] [_step0] [_step0] • i i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • _step0 i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • _step1 [popopop] [_stept] branch i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • [?] dipd roll< [popopop] [_stept] branch i\n",
      "                                                           1 [2 3 4] [[] ccons] [_step0] [?] • dipd roll< [popopop] [_stept] branch i\n",
      "                                                           1 [2 3 4] [[] ccons] [_step0] [?] • [dip] codi roll< [popopop] [_stept] branch i\n",
      "                                                     1 [2 3 4] [[] ccons] [_step0] [?] [dip] • codi roll< [popopop] [_stept] branch i\n",
      "                                                     1 [2 3 4] [[] ccons] [_step0] [?] [dip] • cons dip roll< [popopop] [_stept] branch i\n",
      "                                                     1 [2 3 4] [[] ccons] [_step0] [[?] dip] • dip roll< [popopop] [_stept] branch i\n",
      "                                                                        1 [2 3 4] [[] ccons] • [?] dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                    1 [2 3 4] [[] ccons] [?] • dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                                   1 [2 3 4] • ? [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                                   1 [2 3 4] • dup bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                           1 [2 3 4] [2 3 4] • bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                              1 [2 3 4] true • [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                   1 [2 3 4] true [[] ccons] • [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                          1 [2 3 4] true [[] ccons] [_step0] • roll< [popopop] [_stept] branch i\n",
      "                                                          1 [2 3 4] true [[] ccons] [_step0] • swapd swap [popopop] [_stept] branch i\n",
      "                                                          1 [2 3 4] true [[] ccons] [_step0] • [swap] dip swap [popopop] [_stept] branch i\n",
      "                                                   1 [2 3 4] true [[] ccons] [_step0] [swap] • dip swap [popopop] [_stept] branch i\n",
      "                                                                   1 [2 3 4] true [[] ccons] • swap [_step0] swap [popopop] [_stept] branch i\n",
      "                                                                   1 [2 3 4] [[] ccons] true • [_step0] swap [popopop] [_stept] branch i\n",
      "                                                          1 [2 3 4] [[] ccons] true [_step0] • swap [popopop] [_stept] branch i\n",
      "                                                          1 [2 3 4] [[] ccons] [_step0] true • [popopop] [_stept] branch i\n",
      "                                                1 [2 3 4] [[] ccons] [_step0] true [popopop] • [_stept] branch i\n",
      "                                       1 [2 3 4] [[] ccons] [_step0] true [popopop] [_stept] • branch i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • _stept i\n",
      "                                                               1 [2 3 4] [[] ccons] [_step0] • [uncons] dipd [dupdipd] dip x i\n",
      "                                                      1 [2 3 4] [[] ccons] [_step0] [uncons] • dipd [dupdipd] dip x i\n",
      "                                                      1 [2 3 4] [[] ccons] [_step0] [uncons] • [dip] codi [dupdipd] dip x i\n",
      "                                                1 [2 3 4] [[] ccons] [_step0] [uncons] [dip] • codi [dupdipd] dip x i\n",
      "                                                1 [2 3 4] [[] ccons] [_step0] [uncons] [dip] • cons dip [dupdipd] dip x i\n",
      "                                                1 [2 3 4] [[] ccons] [_step0] [[uncons] dip] • dip [dupdipd] dip x i\n",
      "                                                                        1 [2 3 4] [[] ccons] • [uncons] dip [_step0] [dupdipd] dip x i\n",
      "                                                               1 [2 3 4] [[] ccons] [uncons] • dip [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • uncons [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • [first] [rest] cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] [first] • [rest] cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    1 [2 3 4] [first] [rest] • cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    1 [2 3 4] [first] [rest] • fork popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    1 [2 3 4] [first] [rest] • [i] app2 popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                1 [2 3 4] [first] [rest] [i] • app2 popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                1 [2 3 4] [first] [rest] [i] • [grba swap grba swap] dip [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                          1 [2 3 4] [first] [rest] [i] [grba swap grba swap] • dip [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    1 [2 3 4] [first] [rest] • grba swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    1 [2 3 4] [first] [rest] • [stack popd] dip swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       1 [2 3 4] [first] [rest] [stack popd] • dip swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] [first] • stack popd [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       1 [2 3 4] [first] [[first] [2 3 4] 1] • popd [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       1 [2 3 4] [first] [[first] [2 3 4] 1] • [pop] dip [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                 1 [2 3 4] [first] [[first] [2 3 4] 1] [pop] • dip [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] [first] • pop [[first] [2 3 4] 1] [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • [[first] [2 3 4] 1] [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               1 [2 3 4] [[first] [2 3 4] 1] • [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                        1 [2 3 4] [[first] [2 3 4] 1] [rest] • swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                        1 [2 3 4] [rest] [[first] [2 3 4] 1] • grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                        1 [2 3 4] [rest] [[first] [2 3 4] 1] • [stack popd] dip swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                           1 [2 3 4] [rest] [[first] [2 3 4] 1] [stack popd] • dip swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                            1 [2 3 4] [rest] • stack popd [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                         1 [2 3 4] [rest] [[rest] [2 3 4] 1] • popd [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                         1 [2 3 4] [rest] [[rest] [2 3 4] 1] • [pop] dip [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   1 [2 3 4] [rest] [[rest] [2 3 4] 1] [pop] • dip [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                            1 [2 3 4] [rest] • pop [[rest] [2 3 4] 1] [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • [[rest] [2 3 4] 1] [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                1 [2 3 4] [[rest] [2 3 4] 1] • [[first] [2 3 4] 1] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                            1 [2 3 4] [[rest] [2 3 4] 1] [[first] [2 3 4] 1] • swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                            1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] • [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                        1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [i] • [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                               1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [i] [infrst] • cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                               1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] • ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                               1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] • [dip] dupdip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] [dip] • dupdip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] [dip] • dupd dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] [dip] • [dup] dip dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] [dip] [dup] • dip dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                               1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] • dup [dip] dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                  1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] [[i] infrst] • [dip] dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "            1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] [[i] infrst] [dip] • dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                               1 [2 3 4] [[first] [2 3 4] 1] [[rest] [2 3 4] 1] [[i] infrst] • dip [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               1 [2 3 4] [[first] [2 3 4] 1] • [i] infrst [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [[first] [2 3 4] 1] [i] • infrst [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [[first] [2 3 4] 1] [i] • infra first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [[first] [2 3 4] 1] [i] • swons swaack [i] dip swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [[first] [2 3 4] 1] [i] • swap cons swaack [i] dip swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [i] [[first] [2 3 4] 1] • cons swaack [i] dip swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [[i] [first] [2 3 4] 1] • swaack [i] dip swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           1 [2 3 4] [first] [i] [[2 3 4] 1] • [i] dip swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       1 [2 3 4] [first] [i] [[2 3 4] 1] [i] • dip swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       1 [2 3 4] [first] [i] • i [[2 3 4] 1] swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] [first] • i [[2 3 4] 1] swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • first [[2 3 4] 1] swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                         1 2 • [[2 3 4] 1] swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 2 [[2 3 4] 1] • swaack first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 [2 3 4] [2 1] • first [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 1 [2 3 4] 2 • [[rest] [2 3 4] 1] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              1 [2 3 4] 2 [[rest] [2 3 4] 1] • [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                 1 [2 3 4] 2 [[rest] [2 3 4] 1] [[i] infrst] • i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              1 [2 3 4] 2 [[rest] [2 3 4] 1] • [i] infrst popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] 2 [[rest] [2 3 4] 1] [i] • infrst popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] 2 [[rest] [2 3 4] 1] [i] • infra first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] 2 [[rest] [2 3 4] 1] [i] • swons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] 2 [[rest] [2 3 4] 1] [i] • swap cons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] 2 [i] [[rest] [2 3 4] 1] • cons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] 2 [[i] [rest] [2 3 4] 1] • swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          1 [2 3 4] [rest] [i] [2 [2 3 4] 1] • [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      1 [2 3 4] [rest] [i] [2 [2 3 4] 1] [i] • dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                        1 [2 3 4] [rest] [i] • i [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                            1 [2 3 4] [rest] • i [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • rest [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • [pop] infra [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 [2 3 4] [pop] • infra [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 [2 3 4] [pop] • swons swaack [i] dip swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 [2 3 4] [pop] • swap cons swaack [i] dip swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 [pop] [2 3 4] • cons swaack [i] dip swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             1 [[pop] 2 3 4] • swaack [i] dip swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             4 3 2 [pop] [1] • [i] dip swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         4 3 2 [pop] [1] [i] • dip swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 4 3 2 [pop] • i [1] swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                       4 3 2 • pop [1] swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                         4 3 • [1] swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                     4 3 [1] • swaack [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                     1 [3 4] • [2 [2 3 4] 1] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       1 [3 4] [2 [2 3 4] 1] • swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       1 [2 3 4] 2 [[3 4] 1] • first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] 2 [3 4] • popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] 2 [3 4] • [pop] dipd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                     1 [2 3 4] 2 [3 4] [pop] • dipd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                     1 [2 3 4] 2 [3 4] [pop] • [dip] codi [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               1 [2 3 4] 2 [3 4] [pop] [dip] • codi [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               1 [2 3 4] 2 [3 4] [pop] [dip] • cons dip [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               1 [2 3 4] 2 [3 4] [[pop] dip] • dip [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 1 [2 3 4] 2 • [pop] dip [3 4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           1 [2 3 4] 2 [pop] • dip [3 4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 [2 3 4] • pop 2 [3 4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                           1 • 2 [3 4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                         1 2 • [3 4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   1 2 [3 4] • [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                        1 2 [3 4] [[] ccons] • [_step0] [dupdipd] dip x i\n",
      "                                                               1 2 [3 4] [[] ccons] [_step0] • [dupdipd] dip x i\n",
      "                                                     1 2 [3 4] [[] ccons] [_step0] [dupdipd] • dip x i\n",
      "                                                                        1 2 [3 4] [[] ccons] • dupdipd [_step0] x i\n",
      "                                                                        1 2 [3 4] [[] ccons] • dup dipd [_step0] x i\n",
      "                                                             1 2 [3 4] [[] ccons] [[] ccons] • dipd [_step0] x i\n",
      "                                                             1 2 [3 4] [[] ccons] [[] ccons] • [dip] codi [_step0] x i\n",
      "                                                       1 2 [3 4] [[] ccons] [[] ccons] [dip] • codi [_step0] x i\n",
      "                                                       1 2 [3 4] [[] ccons] [[] ccons] [dip] • cons dip [_step0] x i\n",
      "                                                       1 2 [3 4] [[] ccons] [[[] ccons] dip] • dip [_step0] x i\n",
      "                                                                                   1 2 [3 4] • [[] ccons] dip [[] ccons] [_step0] x i\n",
      "                                                                        1 2 [3 4] [[] ccons] • dip [[] ccons] [_step0] x i\n",
      "                                                                                         1 2 • [] ccons [3 4] [[] ccons] [_step0] x i\n",
      "                                                                                      1 2 [] • ccons [3 4] [[] ccons] [_step0] x i\n",
      "                                                                                      1 2 [] • cons cons [3 4] [[] ccons] [_step0] x i\n",
      "                                                                                       1 [2] • cons [3 4] [[] ccons] [_step0] x i\n",
      "                                                                                       [1 2] • [3 4] [[] ccons] [_step0] x i\n",
      "                                                                                 [1 2] [3 4] • [[] ccons] [_step0] x i\n",
      "                                                                      [1 2] [3 4] [[] ccons] • [_step0] x i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • x i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • dup i i\n",
      "                                                    [1 2] [3 4] [[] ccons] [_step0] [_step0] • i i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • _step0 i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • _step1 [popopop] [_stept] branch i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • [?] dipd roll< [popopop] [_stept] branch i\n",
      "                                                         [1 2] [3 4] [[] ccons] [_step0] [?] • dipd roll< [popopop] [_stept] branch i\n",
      "                                                         [1 2] [3 4] [[] ccons] [_step0] [?] • [dip] codi roll< [popopop] [_stept] branch i\n",
      "                                                   [1 2] [3 4] [[] ccons] [_step0] [?] [dip] • codi roll< [popopop] [_stept] branch i\n",
      "                                                   [1 2] [3 4] [[] ccons] [_step0] [?] [dip] • cons dip roll< [popopop] [_stept] branch i\n",
      "                                                   [1 2] [3 4] [[] ccons] [_step0] [[?] dip] • dip roll< [popopop] [_stept] branch i\n",
      "                                                                      [1 2] [3 4] [[] ccons] • [?] dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                  [1 2] [3 4] [[] ccons] [?] • dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                                 [1 2] [3 4] • ? [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                                 [1 2] [3 4] • dup bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                           [1 2] [3 4] [3 4] • bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                            [1 2] [3 4] true • [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                 [1 2] [3 4] true [[] ccons] • [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                        [1 2] [3 4] true [[] ccons] [_step0] • roll< [popopop] [_stept] branch i\n",
      "                                                        [1 2] [3 4] true [[] ccons] [_step0] • swapd swap [popopop] [_stept] branch i\n",
      "                                                        [1 2] [3 4] true [[] ccons] [_step0] • [swap] dip swap [popopop] [_stept] branch i\n",
      "                                                 [1 2] [3 4] true [[] ccons] [_step0] [swap] • dip swap [popopop] [_stept] branch i\n",
      "                                                                 [1 2] [3 4] true [[] ccons] • swap [_step0] swap [popopop] [_stept] branch i\n",
      "                                                                 [1 2] [3 4] [[] ccons] true • [_step0] swap [popopop] [_stept] branch i\n",
      "                                                        [1 2] [3 4] [[] ccons] true [_step0] • swap [popopop] [_stept] branch i\n",
      "                                                        [1 2] [3 4] [[] ccons] [_step0] true • [popopop] [_stept] branch i\n",
      "                                              [1 2] [3 4] [[] ccons] [_step0] true [popopop] • [_stept] branch i\n",
      "                                     [1 2] [3 4] [[] ccons] [_step0] true [popopop] [_stept] • branch i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • _stept i\n",
      "                                                             [1 2] [3 4] [[] ccons] [_step0] • [uncons] dipd [dupdipd] dip x i\n",
      "                                                    [1 2] [3 4] [[] ccons] [_step0] [uncons] • dipd [dupdipd] dip x i\n",
      "                                                    [1 2] [3 4] [[] ccons] [_step0] [uncons] • [dip] codi [dupdipd] dip x i\n",
      "                                              [1 2] [3 4] [[] ccons] [_step0] [uncons] [dip] • codi [dupdipd] dip x i\n",
      "                                              [1 2] [3 4] [[] ccons] [_step0] [uncons] [dip] • cons dip [dupdipd] dip x i\n",
      "                                              [1 2] [3 4] [[] ccons] [_step0] [[uncons] dip] • dip [dupdipd] dip x i\n",
      "                                                                      [1 2] [3 4] [[] ccons] • [uncons] dip [_step0] [dupdipd] dip x i\n",
      "                                                             [1 2] [3 4] [[] ccons] [uncons] • dip [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • uncons [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • [first] [rest] cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [1 2] [3 4] [first] • [rest] cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                  [1 2] [3 4] [first] [rest] • cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                  [1 2] [3 4] [first] [rest] • fork popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                  [1 2] [3 4] [first] [rest] • [i] app2 popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [1 2] [3 4] [first] [rest] [i] • app2 popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [1 2] [3 4] [first] [rest] [i] • [grba swap grba swap] dip [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                        [1 2] [3 4] [first] [rest] [i] [grba swap grba swap] • dip [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                  [1 2] [3 4] [first] [rest] • grba swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                  [1 2] [3 4] [first] [rest] • [stack popd] dip swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                     [1 2] [3 4] [first] [rest] [stack popd] • dip swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [1 2] [3 4] [first] • stack popd [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [1 2] [3 4] [first] [[first] [3 4] [1 2]] • popd [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [1 2] [3 4] [first] [[first] [3 4] [1 2]] • [pop] dip [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                             [1 2] [3 4] [first] [[first] [3 4] [1 2]] [pop] • dip [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [1 2] [3 4] [first] • pop [[first] [3 4] [1 2]] [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • [[first] [3 4] [1 2]] [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           [1 2] [3 4] [[first] [3 4] [1 2]] • [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                    [1 2] [3 4] [[first] [3 4] [1 2]] [rest] • swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                    [1 2] [3 4] [rest] [[first] [3 4] [1 2]] • grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                    [1 2] [3 4] [rest] [[first] [3 4] [1 2]] • [stack popd] dip swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                       [1 2] [3 4] [rest] [[first] [3 4] [1 2]] [stack popd] • dip swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                          [1 2] [3 4] [rest] • stack popd [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                     [1 2] [3 4] [rest] [[rest] [3 4] [1 2]] • popd [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                     [1 2] [3 4] [rest] [[rest] [3 4] [1 2]] • [pop] dip [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                               [1 2] [3 4] [rest] [[rest] [3 4] [1 2]] [pop] • dip [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                          [1 2] [3 4] [rest] • pop [[rest] [3 4] [1 2]] [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • [[rest] [3 4] [1 2]] [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                            [1 2] [3 4] [[rest] [3 4] [1 2]] • [[first] [3 4] [1 2]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                      [1 2] [3 4] [[rest] [3 4] [1 2]] [[first] [3 4] [1 2]] • swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                      [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] • [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                  [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [i] • [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [i] [infrst] • cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] • ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] • [dip] dupdip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] [dip] • dupdip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] [dip] • dupd dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] [dip] • [dup] dip dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "             [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] [dip] [dup] • dip dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] • dup [dip] dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "            [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] [[i] infrst] • [dip] dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "      [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] [[i] infrst] [dip] • dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                         [1 2] [3 4] [[first] [3 4] [1 2]] [[rest] [3 4] [1 2]] [[i] infrst] • dip [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                           [1 2] [3 4] [[first] [3 4] [1 2]] • [i] infrst [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [[first] [3 4] [1 2]] [i] • infrst [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [[first] [3 4] [1 2]] [i] • infra first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [[first] [3 4] [1 2]] [i] • swons swaack [i] dip swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [[first] [3 4] [1 2]] [i] • swap cons swaack [i] dip swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [i] [[first] [3 4] [1 2]] • cons swaack [i] dip swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [[i] [first] [3 4] [1 2]] • swaack [i] dip swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [1 2] [3 4] [first] [i] [[3 4] [1 2]] • [i] dip swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [1 2] [3 4] [first] [i] [[3 4] [1 2]] [i] • dip swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                     [1 2] [3 4] [first] [i] • i [[3 4] [1 2]] swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [1 2] [3 4] [first] • i [[3 4] [1 2]] swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • first [[3 4] [1 2]] swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                     [1 2] 3 • [[3 4] [1 2]] swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [1 2] 3 [[3 4] [1 2]] • swaack first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [1 2] [3 4] [3 [1 2]] • first [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [1 2] [3 4] 3 • [[rest] [3 4] [1 2]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          [1 2] [3 4] 3 [[rest] [3 4] [1 2]] • [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                             [1 2] [3 4] 3 [[rest] [3 4] [1 2]] [[i] infrst] • i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                          [1 2] [3 4] 3 [[rest] [3 4] [1 2]] • [i] infrst popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] 3 [[rest] [3 4] [1 2]] [i] • infrst popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] 3 [[rest] [3 4] [1 2]] [i] • infra first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] 3 [[rest] [3 4] [1 2]] [i] • swons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] 3 [[rest] [3 4] [1 2]] [i] • swap cons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] 3 [i] [[rest] [3 4] [1 2]] • cons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] 3 [[i] [rest] [3 4] [1 2]] • swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [1 2] [3 4] [rest] [i] [3 [3 4] [1 2]] • [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [1 2] [3 4] [rest] [i] [3 [3 4] [1 2]] [i] • dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                      [1 2] [3 4] [rest] [i] • i [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                          [1 2] [3 4] [rest] • i [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • rest [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • [pop] infra [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [3 4] [pop] • infra [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [3 4] [pop] • swons swaack [i] dip swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [3 4] [pop] • swap cons swaack [i] dip swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [pop] [3 4] • cons swaack [i] dip swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [[pop] 3 4] • swaack [i] dip swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           4 3 [pop] [[1 2]] • [i] dip swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       4 3 [pop] [[1 2]] [i] • dip swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   4 3 [pop] • i [[1 2]] swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                         4 3 • pop [[1 2]] swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                           4 • [[1 2]] swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   4 [[1 2]] • swaack [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   [1 2] [4] • [3 [3 4] [1 2]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                   [1 2] [4] [3 [3 4] [1 2]] • swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                   [1 2] [3 4] 3 [[4] [1 2]] • first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [3 4] 3 [4] • popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                           [1 2] [3 4] 3 [4] • [pop] dipd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                     [1 2] [3 4] 3 [4] [pop] • dipd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                     [1 2] [3 4] 3 [4] [pop] • [dip] codi [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               [1 2] [3 4] 3 [4] [pop] [dip] • codi [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               [1 2] [3 4] 3 [4] [pop] [dip] • cons dip [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                               [1 2] [3 4] 3 [4] [[pop] dip] • dip [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [1 2] [3 4] 3 • [pop] dip [4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [1 2] [3 4] 3 [pop] • dip [4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] [3 4] • pop 3 [4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                       [1 2] • 3 [4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                     [1 2] 3 • [4] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [1 2] 3 [4] • [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                      [1 2] 3 [4] [[] ccons] • [_step0] [dupdipd] dip x i\n",
      "                                                             [1 2] 3 [4] [[] ccons] [_step0] • [dupdipd] dip x i\n",
      "                                                   [1 2] 3 [4] [[] ccons] [_step0] [dupdipd] • dip x i\n",
      "                                                                      [1 2] 3 [4] [[] ccons] • dupdipd [_step0] x i\n",
      "                                                                      [1 2] 3 [4] [[] ccons] • dup dipd [_step0] x i\n",
      "                                                           [1 2] 3 [4] [[] ccons] [[] ccons] • dipd [_step0] x i\n",
      "                                                           [1 2] 3 [4] [[] ccons] [[] ccons] • [dip] codi [_step0] x i\n",
      "                                                     [1 2] 3 [4] [[] ccons] [[] ccons] [dip] • codi [_step0] x i\n",
      "                                                     [1 2] 3 [4] [[] ccons] [[] ccons] [dip] • cons dip [_step0] x i\n",
      "                                                     [1 2] 3 [4] [[] ccons] [[[] ccons] dip] • dip [_step0] x i\n",
      "                                                                                 [1 2] 3 [4] • [[] ccons] dip [[] ccons] [_step0] x i\n",
      "                                                                      [1 2] 3 [4] [[] ccons] • dip [[] ccons] [_step0] x i\n",
      "                                                                                     [1 2] 3 • [] ccons [4] [[] ccons] [_step0] x i\n",
      "                                                                                  [1 2] 3 [] • ccons [4] [[] ccons] [_step0] x i\n",
      "                                                                                  [1 2] 3 [] • cons cons [4] [[] ccons] [_step0] x i\n",
      "                                                                                   [1 2] [3] • cons [4] [[] ccons] [_step0] x i\n",
      "                                                                                   [[1 2] 3] • [4] [[] ccons] [_step0] x i\n",
      "                                                                               [[1 2] 3] [4] • [[] ccons] [_step0] x i\n",
      "                                                                    [[1 2] 3] [4] [[] ccons] • [_step0] x i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • x i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • dup i i\n",
      "                                                  [[1 2] 3] [4] [[] ccons] [_step0] [_step0] • i i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • _step0 i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • _step1 [popopop] [_stept] branch i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • [?] dipd roll< [popopop] [_stept] branch i\n",
      "                                                       [[1 2] 3] [4] [[] ccons] [_step0] [?] • dipd roll< [popopop] [_stept] branch i\n",
      "                                                       [[1 2] 3] [4] [[] ccons] [_step0] [?] • [dip] codi roll< [popopop] [_stept] branch i\n",
      "                                                 [[1 2] 3] [4] [[] ccons] [_step0] [?] [dip] • codi roll< [popopop] [_stept] branch i\n",
      "                                                 [[1 2] 3] [4] [[] ccons] [_step0] [?] [dip] • cons dip roll< [popopop] [_stept] branch i\n",
      "                                                 [[1 2] 3] [4] [[] ccons] [_step0] [[?] dip] • dip roll< [popopop] [_stept] branch i\n",
      "                                                                    [[1 2] 3] [4] [[] ccons] • [?] dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                [[1 2] 3] [4] [[] ccons] [?] • dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                               [[1 2] 3] [4] • ? [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                               [[1 2] 3] [4] • dup bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                           [[1 2] 3] [4] [4] • bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                          [[1 2] 3] [4] true • [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                               [[1 2] 3] [4] true [[] ccons] • [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                      [[1 2] 3] [4] true [[] ccons] [_step0] • roll< [popopop] [_stept] branch i\n",
      "                                                      [[1 2] 3] [4] true [[] ccons] [_step0] • swapd swap [popopop] [_stept] branch i\n",
      "                                                      [[1 2] 3] [4] true [[] ccons] [_step0] • [swap] dip swap [popopop] [_stept] branch i\n",
      "                                               [[1 2] 3] [4] true [[] ccons] [_step0] [swap] • dip swap [popopop] [_stept] branch i\n",
      "                                                               [[1 2] 3] [4] true [[] ccons] • swap [_step0] swap [popopop] [_stept] branch i\n",
      "                                                               [[1 2] 3] [4] [[] ccons] true • [_step0] swap [popopop] [_stept] branch i\n",
      "                                                      [[1 2] 3] [4] [[] ccons] true [_step0] • swap [popopop] [_stept] branch i\n",
      "                                                      [[1 2] 3] [4] [[] ccons] [_step0] true • [popopop] [_stept] branch i\n",
      "                                            [[1 2] 3] [4] [[] ccons] [_step0] true [popopop] • [_stept] branch i\n",
      "                                   [[1 2] 3] [4] [[] ccons] [_step0] true [popopop] [_stept] • branch i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • _stept i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [_step0] • [uncons] dipd [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] [[] ccons] [_step0] [uncons] • dipd [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] [[] ccons] [_step0] [uncons] • [dip] codi [dupdipd] dip x i\n",
      "                                            [[1 2] 3] [4] [[] ccons] [_step0] [uncons] [dip] • codi [dupdipd] dip x i\n",
      "                                            [[1 2] 3] [4] [[] ccons] [_step0] [uncons] [dip] • cons dip [dupdipd] dip x i\n",
      "                                            [[1 2] 3] [4] [[] ccons] [_step0] [[uncons] dip] • dip [dupdipd] dip x i\n",
      "                                                                    [[1 2] 3] [4] [[] ccons] • [uncons] dip [_step0] [dupdipd] dip x i\n",
      "                                                           [[1 2] 3] [4] [[] ccons] [uncons] • dip [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • uncons [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • [first] [rest] cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [[1 2] 3] [4] [first] • [rest] cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                [[1 2] 3] [4] [first] [rest] • cleave [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                [[1 2] 3] [4] [first] [rest] • fork popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                [[1 2] 3] [4] [first] [rest] • [i] app2 popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                            [[1 2] 3] [4] [first] [rest] [i] • app2 popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                            [[1 2] 3] [4] [first] [rest] [i] • [grba swap grba swap] dip [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                      [[1 2] 3] [4] [first] [rest] [i] [grba swap grba swap] • dip [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                [[1 2] 3] [4] [first] [rest] • grba swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                [[1 2] 3] [4] [first] [rest] • [stack popd] dip swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [first] [rest] [stack popd] • dip swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [[1 2] 3] [4] [first] • stack popd [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                               [[1 2] 3] [4] [first] [[first] [4] [[1 2] 3]] • popd [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                               [[1 2] 3] [4] [first] [[first] [4] [[1 2] 3]] • [pop] dip [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                         [[1 2] 3] [4] [first] [[first] [4] [[1 2] 3]] [pop] • dip [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [[1 2] 3] [4] [first] • pop [[first] [4] [[1 2] 3]] [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • [[first] [4] [[1 2] 3]] [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [[1 2] 3] [4] [[first] [4] [[1 2] 3]] • [rest] swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [rest] • swap grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                [[1 2] 3] [4] [rest] [[first] [4] [[1 2] 3]] • grba swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                [[1 2] 3] [4] [rest] [[first] [4] [[1 2] 3]] • [stack popd] dip swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                   [[1 2] 3] [4] [rest] [[first] [4] [[1 2] 3]] [stack popd] • dip swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                        [[1 2] 3] [4] [rest] • stack popd [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                 [[1 2] 3] [4] [rest] [[rest] [4] [[1 2] 3]] • popd [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                 [[1 2] 3] [4] [rest] [[rest] [4] [[1 2] 3]] • [pop] dip [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                           [[1 2] 3] [4] [rest] [[rest] [4] [[1 2] 3]] [pop] • dip [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                        [[1 2] 3] [4] [rest] • pop [[rest] [4] [[1 2] 3]] [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • [[rest] [4] [[1 2] 3]] [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                        [[1 2] 3] [4] [[rest] [4] [[1 2] 3]] • [[first] [4] [[1 2] 3]] swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                [[1 2] 3] [4] [[rest] [4] [[1 2] 3]] [[first] [4] [[1 2] 3]] • swap [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] • [i] [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                            [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [i] • [infrst] cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [i] [infrst] • cons ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] • ii popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] • [dip] dupdip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "             [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] [dip] • dupdip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "             [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] [dip] • dupd dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "             [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] [dip] • [dup] dip dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "       [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] [dip] [dup] • dip dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] • dup [dip] dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "      [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] [[i] infrst] • [dip] dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "[[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] [[i] infrst] [dip] • dip i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [[rest] [4] [[1 2] 3]] [[i] infrst] • dip [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                       [[1 2] 3] [4] [[first] [4] [[1 2] 3]] • [i] infrst [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [i] • infrst [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [i] • infra first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [i] • swons swaack [i] dip swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [[first] [4] [[1 2] 3]] [i] • swap cons swaack [i] dip swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [i] [[first] [4] [[1 2] 3]] • cons swaack [i] dip swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [[i] [first] [4] [[1 2] 3]] • swaack [i] dip swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                   [[1 2] 3] [4] [first] [i] [[4] [[1 2] 3]] • [i] dip swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                               [[1 2] 3] [4] [first] [i] [[4] [[1 2] 3]] [i] • dip swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                   [[1 2] 3] [4] [first] [i] • i [[4] [[1 2] 3]] swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [[1 2] 3] [4] [first] • i [[4] [[1 2] 3]] swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • first [[4] [[1 2] 3]] swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [[1 2] 3] 4 • [[4] [[1 2] 3]] swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                 [[1 2] 3] 4 [[4] [[1 2] 3]] • swaack first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                 [[1 2] 3] [4] [4 [[1 2] 3]] • first [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             [[1 2] 3] [4] 4 • [[rest] [4] [[1 2] 3]] [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] • [[i] infrst] i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                         [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] [[i] infrst] • i popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                      [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] • [i] infrst popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] [i] • infrst popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] [i] • infra first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] [i] • swons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] 4 [[rest] [4] [[1 2] 3]] [i] • swap cons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] 4 [i] [[rest] [4] [[1 2] 3]] • cons swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] 4 [[i] [rest] [4] [[1 2] 3]] • swaack [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                  [[1 2] 3] [4] [rest] [i] [4 [4] [[1 2] 3]] • [i] dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                              [[1 2] 3] [4] [rest] [i] [4 [4] [[1 2] 3]] [i] • dip swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    [[1 2] 3] [4] [rest] [i] • i [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                        [[1 2] 3] [4] [rest] • i [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • rest [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • [pop] infra [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [[1 2] 3] [4] [pop] • infra [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [[1 2] 3] [4] [pop] • swons swaack [i] dip swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [[1 2] 3] [4] [pop] • swap cons swaack [i] dip swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [[1 2] 3] [pop] [4] • cons swaack [i] dip swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         [[1 2] 3] [[pop] 4] • swaack [i] dip swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                         4 [pop] [[[1 2] 3]] • [i] dip swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                     4 [pop] [[[1 2] 3]] [i] • dip swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                     4 [pop] • i [[[1 2] 3]] swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                           4 • pop [[[1 2] 3]] swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                             • [[[1 2] 3]] swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [[[1 2] 3]] • swaack [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                [[1 2] 3] [] • [4 [4] [[1 2] 3]] swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [[1 2] 3] [] [4 [4] [[1 2] 3]] • swaack first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [[1 2] 3] [4] 4 [[] [[1 2] 3]] • first popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                          [[1 2] 3] [4] 4 [] • popdd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                          [[1 2] 3] [4] 4 [] • [pop] dipd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    [[1 2] 3] [4] 4 [] [pop] • dipd [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                    [[1 2] 3] [4] 4 [] [pop] • [dip] codi [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [[1 2] 3] [4] 4 [] [pop] [dip] • codi [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [[1 2] 3] [4] 4 [] [pop] [dip] • cons dip [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                              [[1 2] 3] [4] 4 [] [[pop] dip] • dip [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                             [[1 2] 3] [4] 4 • [pop] dip [] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                       [[1 2] 3] [4] 4 [pop] • dip [] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                               [[1 2] 3] [4] • pop 4 [] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                   [[1 2] 3] • 4 [] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                                 [[1 2] 3] 4 • [] [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                              [[1 2] 3] 4 [] • [[] ccons] [_step0] [dupdipd] dip x i\n",
      "                                                                   [[1 2] 3] 4 [] [[] ccons] • [_step0] [dupdipd] dip x i\n",
      "                                                          [[1 2] 3] 4 [] [[] ccons] [_step0] • [dupdipd] dip x i\n",
      "                                                [[1 2] 3] 4 [] [[] ccons] [_step0] [dupdipd] • dip x i\n",
      "                                                                   [[1 2] 3] 4 [] [[] ccons] • dupdipd [_step0] x i\n",
      "                                                                   [[1 2] 3] 4 [] [[] ccons] • dup dipd [_step0] x i\n",
      "                                                        [[1 2] 3] 4 [] [[] ccons] [[] ccons] • dipd [_step0] x i\n",
      "                                                        [[1 2] 3] 4 [] [[] ccons] [[] ccons] • [dip] codi [_step0] x i\n",
      "                                                  [[1 2] 3] 4 [] [[] ccons] [[] ccons] [dip] • codi [_step0] x i\n",
      "                                                  [[1 2] 3] 4 [] [[] ccons] [[] ccons] [dip] • cons dip [_step0] x i\n",
      "                                                  [[1 2] 3] 4 [] [[] ccons] [[[] ccons] dip] • dip [_step0] x i\n",
      "                                                                              [[1 2] 3] 4 [] • [[] ccons] dip [[] ccons] [_step0] x i\n",
      "                                                                   [[1 2] 3] 4 [] [[] ccons] • dip [[] ccons] [_step0] x i\n",
      "                                                                                 [[1 2] 3] 4 • [] ccons [] [[] ccons] [_step0] x i\n",
      "                                                                              [[1 2] 3] 4 [] • ccons [] [[] ccons] [_step0] x i\n",
      "                                                                              [[1 2] 3] 4 [] • cons cons [] [[] ccons] [_step0] x i\n",
      "                                                                               [[1 2] 3] [4] • cons [] [[] ccons] [_step0] x i\n",
      "                                                                               [[[1 2] 3] 4] • [] [[] ccons] [_step0] x i\n",
      "                                                                            [[[1 2] 3] 4] [] • [[] ccons] [_step0] x i\n",
      "                                                                 [[[1 2] 3] 4] [] [[] ccons] • [_step0] x i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • x i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • dup i i\n",
      "                                               [[[1 2] 3] 4] [] [[] ccons] [_step0] [_step0] • i i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • _step0 i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • _step1 [popopop] [_stept] branch i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • [?] dipd roll< [popopop] [_stept] branch i\n",
      "                                                    [[[1 2] 3] 4] [] [[] ccons] [_step0] [?] • dipd roll< [popopop] [_stept] branch i\n",
      "                                                    [[[1 2] 3] 4] [] [[] ccons] [_step0] [?] • [dip] codi roll< [popopop] [_stept] branch i\n",
      "                                              [[[1 2] 3] 4] [] [[] ccons] [_step0] [?] [dip] • codi roll< [popopop] [_stept] branch i\n",
      "                                              [[[1 2] 3] 4] [] [[] ccons] [_step0] [?] [dip] • cons dip roll< [popopop] [_stept] branch i\n",
      "                                              [[[1 2] 3] 4] [] [[] ccons] [_step0] [[?] dip] • dip roll< [popopop] [_stept] branch i\n",
      "                                                                 [[[1 2] 3] 4] [] [[] ccons] • [?] dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                             [[[1 2] 3] 4] [] [[] ccons] [?] • dip [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                            [[[1 2] 3] 4] [] • ? [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                            [[[1 2] 3] 4] [] • dup bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                         [[[1 2] 3] 4] [] [] • bool [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                                      [[[1 2] 3] 4] [] false • [[] ccons] [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                           [[[1 2] 3] 4] [] false [[] ccons] • [_step0] roll< [popopop] [_stept] branch i\n",
      "                                                  [[[1 2] 3] 4] [] false [[] ccons] [_step0] • roll< [popopop] [_stept] branch i\n",
      "                                                  [[[1 2] 3] 4] [] false [[] ccons] [_step0] • swapd swap [popopop] [_stept] branch i\n",
      "                                                  [[[1 2] 3] 4] [] false [[] ccons] [_step0] • [swap] dip swap [popopop] [_stept] branch i\n",
      "                                           [[[1 2] 3] 4] [] false [[] ccons] [_step0] [swap] • dip swap [popopop] [_stept] branch i\n",
      "                                                           [[[1 2] 3] 4] [] false [[] ccons] • swap [_step0] swap [popopop] [_stept] branch i\n",
      "                                                           [[[1 2] 3] 4] [] [[] ccons] false • [_step0] swap [popopop] [_stept] branch i\n",
      "                                                  [[[1 2] 3] 4] [] [[] ccons] false [_step0] • swap [popopop] [_stept] branch i\n",
      "                                                  [[[1 2] 3] 4] [] [[] ccons] [_step0] false • [popopop] [_stept] branch i\n",
      "                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] false [popopop] • [_stept] branch i\n",
      "                               [[[1 2] 3] 4] [] [[] ccons] [_step0] false [popopop] [_stept] • branch i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • popopop i\n",
      "                                                        [[[1 2] 3] 4] [] [[] ccons] [_step0] • pop popop i\n",
      "                                                                 [[[1 2] 3] 4] [] [[] ccons] • popop i\n",
      "                                                                 [[[1 2] 3] 4] [] [[] ccons] • pop pop i\n",
      "                                                                            [[[1 2] 3] 4] [] • pop i\n",
      "                                                                               [[[1 2] 3] 4] • i\n",
      "                                                                                             • [[1 2] 3] 4\n",
      "                                                                                   [[1 2] 3] • 4\n",
      "                                                                                 [[1 2] 3] 4 • \n",
      "\n",
      "[[1 2] 3] 4"
     ]
    }
   ],
   "source": [
    "1 [2 3 4] [Z] trace"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": []
    }
   ],
   "source": [
    "clear"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And here it is doing the thing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 [2 [3 4 25 6] 7] 8] [sqr] [dip dip infra dip infra dip infra]"
     ]
    }
   ],
   "source": [
    "[1 [2 [3 4 25 6] 7] 8] [sqr] [dip dip infra dip infra dip infra]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    " [[[] ccons] step i] trace"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Addressing\n",
    "Because we are only using two combinators we could replace the list with a string made from only two characters.\n",
    "\n",
    "       [...] [Q] 'ddididi' Zstr\n",
    "    -------------------------------------------------------------\n",
    "       [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra\n",
    "\n",
    "The string can be considered a name or address for an item in the subject datastructure.\n",
    "\n",
    "## Determining the right \"path\" for an item in a tree.\n",
    "It's easy to read off (in reverse) the right sequence of \"d\" and \"i\" from the subject datastructure:\n",
    "\n",
    "    [ n [ n [ n n x ...\n",
    "    i d i d i d d Bingo!"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Joypy",
   "language": "",
   "name": "thun"
  },
  "language_info": {
   "file_extension": ".joy",
   "mimetype": "text/plain",
   "name": "Joy"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
