faylang/fay-base — pull request #26 by chrisdone (2014-10-13 17:39:15+00:00)
Title: Many new modules

This pull request open sources a bunch of modules we're been using locally at FP Complete. Half of them are mostly-faithful clones of normal Haskell packages (text, time, etc.), others are Fay-specific modules that help with client-side development.

I've put them all in separate commits which can be cherry-picked or merged in one go, whichever's preferable. Below I've listed them as checkboxes so we can track which have been merged and which either need to be updated or can be stricken out if rejected.

The `Data.Var` module should be familiar to @bergmark as AIUI they use similar reactive vars at Silk. We use them extensively, hence the fairly large API.

We have some other modules and libraries but they're a little harder to extract from our codebase.

Probably the only controversial item will be whether to include things like Data.Text, Mutex, LocalStorage and MutMap in base. But my argument is that GHC's own base includes a rather large surface area of fundamental useful things. Our small use of `text` doesn't deserve an extra layer of maintenance, it's just one module, unlike the rather large API hierarchy of real `text`, which has all the builders and such.

* [ ] Add `Unsafe.Coerce` and `Fay.Unsafe` in c09a2b7
* [ ] Add `Data.Text` module in 7ee76a0
* [ ] Add `Data.Time` module in 26d5255
* [ ] Add `Data.Ord,` `Data.Function`, `Data.Maybe`, `Data.List`, `Data.Either` in 4407240
* [ ] Add `Data.Defined` and `Data.Nullable` in 979dd64
* [ ] Add `Data.Mutex` - simple mutexes in efc0ff6
* [ ] Add `Control.Exception` in cd3bcba
* [ ] Add `Data.LocalStorage` in a122d7e
* [ ] Add `Data.MutMap` in d2c1f95
* [ ] Add `Data.Var` in 590f2af