<div dir="ltr">I don't understand what you mean by immutable and persistant, because vector-heterogenous is both of those!  It just uses a standard boxed vector as the backend and does some unsafeCoercing to get the types to line up.<br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 1, 2013 at 7:40 PM, Sergey Bushnyak <span dir="ltr"><<a href="mailto:sergey.bushnyak@sigrlami.eu" target="_blank">sergey.bushnyak@sigrlami.eu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
    <div>On 12/02/2013 03:58 AM, Mike Izbicki
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Author of vector-heterogenous here.  I tried to
        design the package to meet use cases like you describe, but
        fully admit that it's not perfect.  It's missing a lot of the
        functions you might expect from the regular vector package (some
        of them are because I didn't need them, and some are because the
        best implementation is not obvious), and syntax is still a
        little awkward for my tastes.<br>
        <div class="gmail_extra"><br>
        </div>
        <div class="gmail_extra">So if you have any ideas on
          improvements, I'd definitely be willing to incorporate them. 
          Or if you have a great idea for a complete redesign of the
          package, I'd be happy to replace everything and let you take
          over.<br>
        </div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Sun, Dec 1, 2013 at 12:11 PM,
            Sergey Bushnyak <span dir="ltr"><<a href="mailto:sergey.bushnyak@sigrlami.eu" target="_blank">sergey.bushnyak@sigrlami.eu</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,
              everyone. I'm looking for reliable library or idea how to
              implement heterogenous vector properly. It may seem odd,
              but I want elements not only be different types but also
              functions, something like that, pseudocode:<br>
              <br>
                  hvec [a b (c->d) [a] ...]  -- can be any type<br>
                  let hvec = hvec [ "stuff" 5 getUrl [1, 4, 5]]<br>
              <br>
              So far I found *vector-heterogenous* package, but can't
              decide is it good to build on or create something on my
              own.<br>
              <br>
              Any thoughts and ideas are appreciated. Thanks.<br>
              <br>
              _______________________________________________<br>
              Haskell-Cafe mailing list<br>
              <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
              <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
    </blockquote></div></div>
    Mike, thank you for quick response, nice to hear you open for
    improvements. I'm also looking for this kind of package to be not
    only heterogeneous, but immutable and persistent, which leads to
    higher level of abstraction, something like *collection*. It will be
    nice to derive different types from it, like hvector, hlist etc. <br>
    <br>
    I'm doing small research now, if I'll understand that it's better to
    build upon your library or even reshape it I'll drop you an email.<br>
    <br>
     <br>
  </div>

</blockquote></div><br></div>