
* IDPs
  - AzureAD: <https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code>
  - douban: <http://developers.douban.com/wiki/?title=oauth2>
  - Google: <https://developers.google.com/accounts/docs/OAuth2WebServer>
  - Github: <http://developer.github.com/v3/oauth/>
  - Facebook: <http://developers.facebook.com/docs/facebook-login/>
  - Fitbit: <http://dev.fitbit.com/docs/oauth2/>
  - StackExchange: <https://api.stackexchange.com/docs/authentication>
  - StackExchange Apps page: <https://stackapps.com/apps/oauth>
  - DropBox: <https://www.dropbox.com/developers/reference/oauth-guide>
  - Weibo: <http://open.weibo.com/wiki/Oauth2>

* WIP: Linkedin
  - <https://developer.linkedin.com>

* NOTES
  - classes in Types.hs takes a (`IDP`) as first parameter but it is actually not used. bad pattern. how to fix it??
  - refactor: `App.hs` is messy!
