<p dir="ltr">I second the recommendation to look at Haste.  It&#39;s what I would pick for a project like this today.</p>
<p dir="ltr">In the big picture, Haste and GHCJS are fairly similar.  But when it comes to the ugly details of the runtime system, GHCJS adopts the perspective that it&#39;s basically an emulator, where compatibility is the number one goal.  Haste goes for a more native approach; while the evaluation semantics and such are completely faithful to Haskell, it doesn&#39;t go out of the way to emulate the gritty details of GHC&#39;s runtime system.</p>

<div class="gmail_quote">On Sep 4, 2013 3:38 AM, &quot;Nathan Hüsken&quot; &lt;<a href="mailto:nathan.huesken@posteo.de">nathan.huesken@posteo.de</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>In my opinion haste is somewhere
      between Fay and ghcjs. It supports more than Fay, but in
      difference to ghcjs some PrimOps are not supported (weak pointers
      for example).<br>
      <br>
      It is a little bit more &quot;direct&quot; than ghcjs, in the sense that it
      does not need such a big rts written in js.<br>
      <br>
      I like haste :).<br>
      <br>
      What I wonder is how the outputs of these 3 compilers compare
      speed wise.<br>
      <br>
      On 09/04/2013 11:11 AM, Alejandro Serrano Mena wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">I haven&#39;t looked at Haste too much, I&#39;ll give it a
        try.
        <div><br>
        </div>
        <div>My main problem is that I would like to find a solution
          that will continue working in years (somehow, that will became
          &quot;the&quot; solution for generating JS from Haskell code). That&#39;s
          why I see GHCJS (which just includes some patches to
          mainstream GHC) as the preferred solution, because it seems
          the most probable to continue working when new versions of GHC
          appear.</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">2013/9/4 Niklas Hambüchen <span dir="ltr">&lt;<a href="mailto:mail@nh2.me" target="_blank">mail@nh2.me</a>&gt;</span><br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            Hi, I&#39;m also interested in that.<br>
            <br>
            Have you already evaluated haste?<br>
            <br>
            It does not seem to have any of your cons, but maybe others.<br>
            <br>
            What I particularly miss from all solutions is the ability
            to simply<br>
            call parts written in Haskell from Javascript, e.g. to write
            `fib` and<br>
            then integrate it into an existing Javascript application
            (they are all<br>
            more interested in doing the other direction).<br>
            <div>
              <div><br>
                On Wed 04 Sep 2013 17:14:55 JST, Alejandro Serrano Mena
                wrote:<br>
                &gt; Hi,<br>
                &gt; I&#39;m currently writing a tutorial on web
                applications using Haskell. I<br>
                &gt; know the pros and cons of each server-side library
                (Yesod, Snap,<br>
                &gt; Scotty, Warp, Happstack), but I&#39;m looking for the
                right choice for<br>
                &gt; client-side programming that converts Haskell to
                JavaScript. I&#39;ve<br>
                &gt; finally come to Fay vs. GHCJS, and would like your
                opinion on what&#39;s<br>
                &gt; the best to tackle. My current list of pros and
                cons is:<br>
                &gt;<br>
                &gt; Fay<br>
                &gt; ===<br>
                &gt; Pros:<br>
                &gt; - Does not need GHC 7.8<br>
                &gt; - Easy FFI with JS<br>
                &gt; - Has libraries for integration with Yesod and Snap<br>
                &gt;<br>
                &gt; Cons:<br>
                &gt; - Only supports a subset of GHC (in particular, no
                type classes)<br>
                &gt;<br>
                &gt;<br>
                &gt; GHCJS<br>
                &gt; ======<br>
                &gt; Pros:<br>
                &gt; - Supports full GHC<br>
                &gt; - Easy FFI with JS<br>
                &gt; - Highly opinionated point: will stay longer than
                Fay (but it&#39;s very<br>
                &gt; important for not having a tutorial that is old in
                few months)<br>
                &gt;<br>
                &gt; Cons:<br>
                &gt; - Needs GHC 7.8 (but provides a Vagrant image)<br>
                &gt;<br>
                &gt;<br>
              </div>
            </div>
            &gt; _______________________________________________<br>
            &gt; Haskell-Cafe mailing list<br>
            &gt; <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
            &gt; <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>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
Haskell-Cafe mailing list
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">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>
<br></blockquote></div>