<div dir="ltr"><div>As we already have IsList, shouldn't we just do this?</div><div><br></div><div><div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-weight:normal;font-size:16px;line-height:22px;white-space:pre"><div><span style="color:rgb(86,156,214)">class</span><span style="color:rgb(212,212,212)"> (</span><span style="color:rgb(86,156,214)">IsList</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">l</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(86,156,214)">Item</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">l</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">~</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">Char</span><span style="color:rgb(212,212,212)">) => </span><span style="color:rgb(86,156,214)">IsString</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">l</span></div><br><div><span style="color:rgb(86,156,214)">instance</span><span style="color:rgb(212,212,212)"> (</span><span style="color:rgb(156,220,254)">a</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">~</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">Char</span><span style="color:rgb(212,212,212)">) => </span><span style="color:rgb(86,156,214)">IsString</span><span style="color:rgb(212,212,212)"> [</span><span style="color:rgb(156,220,254)">a</span><span style="color:rgb(212,212,212)">]</span></div><div><span style="color:rgb(86,156,214)">instance</span><span style="color:rgb(212,212,212)"> (</span><span style="color:rgb(156,220,254)">a</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">~</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">Char</span><span style="color:rgb(212,212,212)">) => </span><span style="color:rgb(86,156,214)">IsString</span><span style="color:rgb(212,212,212)"> (</span><span style="color:rgb(86,156,214)">NonEmpty</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">a</span><span style="color:rgb(212,212,212)">)</span></div><div><span style="color:rgb(86,156,214)">instance</span><span style="color:rgb(212,212,212)"> (</span><span style="color:rgb(156,220,254)">a</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">~</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(86,156,214)">Char</span><span style="color:rgb(212,212,212)">) => </span><span style="color:rgb(86,156,214)">IsString</span><span style="color:rgb(212,212,212)"> (</span><span style="color:rgb(86,156,214)">ZipList</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">a</span><span style="color:rgb(212,212,212)">)</span></div></div></div></div>