Merge branch 'ImprovedReflection'
Remove "return" from Monad

Monad has Applicative as a superclass. The methods "pure" and "return" are
supposed to do the same thing. This change does the following:

1. Remove "return" from Monad
2. Remove "return" from all instances of Monad in the standard library
3. Define a compatibility function "return":

return : Monad m => a -> m a
return = pure

This enforces that "return" and "pure" do the same thing.
javascript: added javascript lib package
javascript: add hack to check for undefined
javascript: added experimental JSON datastructure
javascript: added index to JSONArray
javascript: added ++ for JSArray
javascript: indentation
javascript: fix compilation error
Merge pull request #326 from raichoo/javascript

javascript: added javascript lib package
Merge pull request #319 from david-christiansen/remove-return

Remove "return" from Monad
A couple small typo fixes in the tutorial
another small typo fix in tutorial
Some unification fixes
Type class resolution fix (disables Decidable.Decidable)
Instances should not be resolved when there is no information available.
Previously, resolution just guessed at an instance in this case, though
this was never intended behaviour!
Merge pull request #329 from byorgey/patch-1

A couple small typo fixes in the tutorial
Merge pull request #330 from byorgey/patch-2

another small typo fix in tutorial
Fix invalid C codegen for unary floating point operators
Merge pull request #332 from bitlisp/fixed-float-unops

Fix invalid C codegen for unary floating point operators
Integer <-> Float conversion in C codegen