functional-data-structure/finger-tree

View on GitHub
media/sketch.svg

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="226pt" height="146pt" viewBox="0 0 226 146" version="1.1">
<g id="surface1">
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 151.999219 736.000781 C 143.163281 736.000781 135.999219 743.164844 135.999219 752.000781 C 135.999219 760.836719 143.163281 768.000781 151.999219 768.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 199.999219 768.000781 C 208.835156 768.000781 215.999219 760.836719 215.999219 752.000781 C 215.999219 743.164844 208.835156 736.000781 199.999219 736.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 48.699219 16.699219 C 48.699219 12.28125 45.117188 8.699219 40.699219 8.699219 C 36.28125 8.699219 32.699219 12.28125 32.699219 16.699219 C 32.699219 21.117188 36.28125 24.699219 40.699219 24.699219 C 45.117188 24.699219 48.699219 21.117188 48.699219 16.699219 Z M 48.699219 16.699219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 72.699219 16.699219 C 72.699219 12.28125 69.117188 8.699219 64.699219 8.699219 C 60.28125 8.699219 56.699219 12.28125 56.699219 16.699219 C 56.699219 21.117188 60.28125 24.699219 64.699219 24.699219 C 69.117188 24.699219 72.699219 21.117188 72.699219 16.699219 Z M 72.699219 16.699219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 96.699219 16.699219 C 96.699219 12.28125 93.117188 8.699219 88.699219 8.699219 C 84.28125 8.699219 80.699219 12.28125 80.699219 16.699219 C 80.699219 21.117188 84.28125 24.699219 88.699219 24.699219 C 93.117188 24.699219 96.699219 21.117188 96.699219 16.699219 Z M 96.699219 16.699219 "/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.999219 736.000781 C 239.163281 736.000781 231.999219 743.164844 231.999219 752.000781 C 231.999219 760.836719 239.163281 768.000781 247.999219 768.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 319.999219 768.000781 C 328.835156 768.000781 335.999219 760.836719 335.999219 752.000781 C 335.999219 743.164844 328.835156 736.000781 319.999219 736.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.999219 768.000781 L 319.999219 768.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.999219 736.000781 L 319.999219 736.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 144.699219 16.699219 C 144.699219 12.28125 141.117188 8.699219 136.699219 8.699219 C 132.28125 8.699219 128.699219 12.28125 128.699219 16.699219 C 128.699219 21.117188 132.28125 24.699219 136.699219 24.699219 C 141.117188 24.699219 144.699219 21.117188 144.699219 16.699219 Z M 144.699219 16.699219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 168.699219 16.699219 C 168.699219 12.28125 165.117188 8.699219 160.699219 8.699219 C 156.28125 8.699219 152.699219 12.28125 152.699219 16.699219 C 152.699219 21.117188 156.28125 24.699219 160.699219 24.699219 C 165.117188 24.699219 168.699219 21.117188 168.699219 16.699219 Z M 168.699219 16.699219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 192.699219 16.699219 C 192.699219 12.28125 189.117188 8.699219 184.699219 8.699219 C 180.28125 8.699219 176.699219 12.28125 176.699219 16.699219 C 176.699219 21.117188 180.28125 24.699219 184.699219 24.699219 C 189.117188 24.699219 192.699219 21.117188 192.699219 16.699219 Z M 192.699219 16.699219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 216.699219 16.699219 C 216.699219 12.28125 213.117188 8.699219 208.699219 8.699219 C 204.28125 8.699219 200.699219 12.28125 200.699219 16.699219 C 200.699219 21.117188 204.28125 24.699219 208.699219 24.699219 C 213.117188 24.699219 216.699219 21.117188 216.699219 16.699219 Z M 216.699219 16.699219 "/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 127.999219 688.000781 C 119.163281 688.000781 111.999219 695.164844 111.999219 704.000781 C 111.999219 712.836719 119.163281 720.000781 127.999219 720.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 199.999219 720.000781 C 208.835156 720.000781 215.999219 712.836719 215.999219 704.000781 C 215.999219 695.164844 208.835156 688.000781 199.999219 688.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 127.999219 720.000781 L 199.999219 720.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 127.999219 688.000781 L 199.999219 688.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 135.999219 704.000781 C 135.999219 708.41875 132.417188 712.000781 127.999219 712.000781 C 123.58125 712.000781 119.999219 708.41875 119.999219 704.000781 C 119.999219 699.582813 123.58125 696.000781 127.999219 696.000781 C 132.417188 696.000781 135.999219 699.582813 135.999219 704.000781 Z M 135.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 159.999219 704.000781 C 159.999219 708.41875 156.417188 712.000781 151.999219 712.000781 C 147.58125 712.000781 143.999219 708.41875 143.999219 704.000781 C 143.999219 699.582813 147.58125 696.000781 151.999219 696.000781 C 156.417188 696.000781 159.999219 699.582813 159.999219 704.000781 Z M 159.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 183.999219 704.000781 C 183.999219 708.41875 180.417188 712.000781 175.999219 712.000781 C 171.58125 712.000781 167.999219 708.41875 167.999219 704.000781 C 167.999219 699.582813 171.58125 696.000781 175.999219 696.000781 C 180.417188 696.000781 183.999219 699.582813 183.999219 704.000781 Z M 183.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 207.999219 704.000781 C 207.999219 708.41875 204.417188 712.000781 199.999219 712.000781 C 195.58125 712.000781 191.999219 708.41875 191.999219 704.000781 C 191.999219 699.582813 195.58125 696.000781 199.999219 696.000781 C 204.417188 696.000781 207.999219 699.582813 207.999219 704.000781 Z M 207.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 16.066406 66.390625 C 16.066406 64.152344 12.707031 64.152344 12.707031 66.390625 C 12.707031 68.632812 16.066406 68.632812 16.066406 66.390625 Z M 16.066406 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 20.792969 66.390625 C 20.792969 64.152344 17.433594 64.152344 17.433594 66.390625 C 17.433594 68.632812 20.792969 68.632812 20.792969 66.390625 Z M 20.792969 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 18.429688 62.296875 C 18.429688 60.058594 15.070312 60.058594 15.070312 62.296875 C 15.070312 64.535156 18.429688 64.535156 18.429688 62.296875 Z M 18.429688 62.296875 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 64.4375 62.753906 C 64.4375 60.515625 61.078125 60.515625 61.078125 62.753906 C 61.078125 64.992188 64.4375 64.992188 64.4375 62.753906 Z M 64.4375 62.753906 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 68.507812 66.824219 C 68.507812 64.585938 65.148438 64.585938 65.148438 66.824219 C 65.148438 69.0625 68.507812 69.0625 68.507812 66.824219 Z M 68.507812 66.824219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 88.066406 66.390625 C 88.066406 64.152344 84.707031 64.152344 84.707031 66.390625 C 84.707031 68.632812 88.066406 68.632812 88.066406 66.390625 Z M 88.066406 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 92.792969 66.390625 C 92.792969 64.152344 89.433594 64.152344 89.433594 66.390625 C 89.433594 68.632812 92.792969 68.632812 92.792969 66.390625 Z M 92.792969 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 90.429688 62.296875 C 90.429688 60.058594 87.070312 60.058594 87.070312 62.296875 C 87.070312 64.535156 90.429688 64.535156 90.429688 62.296875 Z M 90.429688 62.296875 "/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.999219 704.000781 C 255.999219 708.41875 252.417188 712.000781 247.999219 712.000781 C 243.58125 712.000781 239.999219 708.41875 239.999219 704.000781 C 239.999219 699.582813 243.58125 696.000781 247.999219 696.000781 C 252.417188 696.000781 255.999219 699.582813 255.999219 704.000781 Z M 255.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 279.999219 704.000781 C 279.999219 708.41875 276.417188 712.000781 271.999219 712.000781 C 267.58125 712.000781 263.999219 708.41875 263.999219 704.000781 C 263.999219 699.582813 267.58125 696.000781 271.999219 696.000781 C 276.417188 696.000781 279.999219 699.582813 279.999219 704.000781 Z M 279.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 303.999219 704.000781 C 303.999219 708.41875 300.417188 712.000781 295.999219 712.000781 C 291.58125 712.000781 287.999219 708.41875 287.999219 704.000781 C 287.999219 699.582813 291.58125 696.000781 295.999219 696.000781 C 300.417188 696.000781 303.999219 699.582813 303.999219 704.000781 Z M 303.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 160.4375 62.753906 C 160.4375 60.515625 157.078125 60.515625 157.078125 62.753906 C 157.078125 64.992188 160.4375 64.992188 160.4375 62.753906 Z M 160.4375 62.753906 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 164.507812 66.824219 C 164.507812 64.585938 161.148438 64.585938 161.148438 66.824219 C 161.148438 69.0625 164.507812 69.0625 164.507812 66.824219 Z M 164.507812 66.824219 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 184.066406 66.390625 C 184.066406 64.152344 180.707031 64.152344 180.707031 66.390625 C 180.707031 68.632812 184.066406 68.632812 184.066406 66.390625 Z M 184.066406 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 188.792969 66.390625 C 188.792969 64.152344 185.433594 64.152344 185.433594 66.390625 C 185.433594 68.632812 188.792969 68.632812 188.792969 66.390625 Z M 188.792969 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 186.429688 62.296875 C 186.429688 60.058594 183.070312 60.058594 183.070312 62.296875 C 183.070312 64.535156 186.429688 64.535156 186.429688 62.296875 Z M 186.429688 62.296875 "/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 151.999219 768.000781 L 199.999219 768.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 151.999219 736.000781 L 199.999219 736.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.999219 688.000781 C 239.163281 688.000781 231.999219 695.164844 231.999219 704.000781 C 231.999219 712.836719 239.163281 720.000781 247.999219 720.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.999219 720.000781 C 304.835156 720.000781 311.999219 712.836719 311.999219 704.000781 C 311.999219 695.164844 304.835156 688.000781 295.999219 688.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.999219 720.000781 L 295.999219 720.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 247.999219 688.000781 L 295.999219 688.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 215.999219 752.000781 L 223.999219 752.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.999219 752.000781 L 231.999219 752.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.999219 752.000781 L 223.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.999219 704.000781 L 231.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.999219 704.000781 L 215.999219 704.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.999219 704.000781 L 223.999219 656.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style="fill:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:round;stroke:rgb(20%,20%,20%);stroke-opacity:1;stroke-miterlimit:10;" d="M 239.999219 640.000781 C 239.999219 648.836719 232.835156 656.000781 223.999219 656.000781 C 215.163281 656.000781 207.999219 648.836719 207.999219 640.000781 C 207.999219 631.164844 215.163281 624.000781 223.999219 624.000781 C 232.835156 624.000781 239.999219 631.164844 239.999219 640.000781 Z M 239.999219 640.000781 " transform="matrix(1,0,0,-1,-111.3,768.7)"/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 40.066406 66.390625 C 40.066406 64.152344 36.707031 64.152344 36.707031 66.390625 C 36.707031 68.632812 40.066406 68.632812 40.066406 66.390625 Z M 40.066406 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 44.792969 66.390625 C 44.792969 64.152344 41.433594 64.152344 41.433594 66.390625 C 41.433594 68.632812 44.792969 68.632812 44.792969 66.390625 Z M 44.792969 66.390625 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 42.429688 62.296875 C 42.429688 60.058594 39.070312 60.058594 39.070312 62.296875 C 39.070312 64.535156 42.429688 64.535156 42.429688 62.296875 Z M 42.429688 62.296875 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 136.4375 62.753906 C 136.4375 60.515625 133.078125 60.515625 133.078125 62.753906 C 133.078125 64.992188 136.4375 64.992188 136.4375 62.753906 Z M 136.4375 62.753906 "/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(20%,20%,20%);fill-opacity:1;" d="M 140.507812 66.824219 C 140.507812 64.585938 137.148438 64.585938 137.148438 66.824219 C 137.148438 69.0625 140.507812 69.0625 140.507812 66.824219 Z M 140.507812 66.824219 "/>
</g>
</svg>