When comparing Opa vs Haste, the Slant community recommends Haste for most people. In the question“What are the best languages that compile to JavaScript? ” Haste is ranked 19th while Opa is ranked 30th. The most important reason people chose Haste is:
Haste was designed to allow both the client and server to be written as parts of the same, type-safe application. This is in stark contrast to most other options, where the client and server are considered two separate entities, resulting in extra manual validation code and more chances for type errors.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Type Inferred
Opa uses type inference to decide what code runs on the client or the server, so you can organize code how you like, but still be sure that it runs where it needs to.
Pro Familiar Javascript Syntax
Opa's syntax is very similar to JavaScript, making it an easy choice for developers who are used to developing in JavaScript.
Pro Client and Server in the same language
Pro Client and Server as the same application
Haste was designed to allow both the client and server to be written as parts of the same, type-safe application. This is in stark contrast to most other options, where the client and server are considered two separate entities, resulting in extra manual validation code and more chances for type errors.

Pro Almost full power of Haskell
Haste supports the Haskell 2010 standard except for Template Haskell as well as most GHC extensions.

Pro Automatic, type safe program slicing
Haste lets you write client and server as a single program, automatically generating code for the server as well as the client, giving you full type safety even across the Internet.
Pro Generates small, reasonably performant code
Cons
Con Not popular
Opa is not as popular as other languages which compile to JavaScript. Making it harder to find learning resources or even answers if you get stuck somewhere.
Con Lacks some minor Haskell functionality
Lacks support for Template Haskell.
