This document lists some of the questions and considerations about Hyper that
come up frequently, and answers that hopefully serves future readers well.
Please, do not regard this as a complete rationale of the project, but rather
a casual summary of discussions that have been held in the past.

This project started out as a curiosity around expressing statically typed
middleware using extensible records.
While Haskell has a record construct, extensible records is not a built-in
feature, and the libraries implementing extensible records for Haskell seemed
too clunky to build a library upon. PureScript’s extensible records, and row
typing, was a very good match for middleware typing, and the cognitive
overhead and expressiveness was reasonable.

Another concern, which might not be shared by all readers, is the NodeJS
deployment target. While the project author would love to see more support for
Haskell deployments in PaaS solutions, the current situation seem to favour
deployment on NodeJS, JVM, Ruby, and Python. Also, many companies and
developers might have invested in NodeJS infrastructure and libraries of their
own, and so PureScript provides a gradual migration path to statically typed
functional programming in web development.

The third point to consider is that PureScript is gaining traction on the
client side, competing, and perhaps living in symbiosis, with frontend
frameworks like React, Angular, and Ember. Having the option to share data
types between client and server, and write them both in a language like
PureScript, is something Hyper emphasizes.