diff --git a/ihaskell-display/ihaskell-charts/Test.ipynb b/ihaskell-display/ihaskell-charts/Test.ipynb
index 12cf3fc4..6a77bfd5 100644
--- a/ihaskell-display/ihaskell-charts/Test.ipynb
+++ b/ihaskell-display/ihaskell-charts/Test.ipynb
@@ -1,331 +1,352 @@
{
- "metadata": {
- "language": "haskell",
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
+ "cells": [
{
- "cells": [
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "controlling-overview",
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import Graphics.Rendering.Chart\n",
+ "import Data.Colour\n",
+ "import Data.Colour.Names\n",
+ "import Data.Default.Class\n",
+ "import Control.Lens"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "fiscal-association",
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "chart borders = toRenderable layout\n",
+ " where\n",
+ " layout = \n",
+ " layout_title .~ \"Sample Bars\" ++ btitle\n",
+ " $ layout_title_style . font_size .~ 10\n",
+ " $ layout_x_axis . laxis_generate .~ autoIndexAxis alabels\n",
+ " $ layout_y_axis . laxis_override .~ axisGridHide\n",
+ " $ layout_left_axis_visibility . axis_show_ticks .~ False\n",
+ " $ layout_plots .~ [ plotBars bars2 ]\n",
+ " $ def :: Layout PlotIndex Double\n",
+ "\n",
+ " bars2 = plot_bars_titles .~ [\"Cash\",\"Equity\"]\n",
+ " $ plot_bars_values .~ addIndexes [[20,45],[45,30],[30,20],[70,25]]\n",
+ " $ plot_bars_style .~ BarsClustered\n",
+ " $ plot_bars_spacing .~ BarsFixGap 30 5\n",
+ " $ plot_bars_item_styles .~ map mkstyle (cycle defaultColorSeq)\n",
+ " $ def\n",
+ "\n",
+ " alabels = [ \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\" ]\n",
+ "\n",
+ " btitle = if borders then \"\" else \" (no borders)\"\n",
+ " bstyle = if borders then Just (solidLine 1.0 $ opaque black) else Nothing\n",
+ " mkstyle c = (solidFillStyle c, bstyle)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "outstanding-choir",
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
+ "outputs": [
{
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import Graphics.Rendering.Chart\n",
- "import Data.Colour\n",
- "import Data.Colour.Names\n",
- "import Data.Default.Class\n",
- "import Control.Lens"
- ],
- "language": "python",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAABmJLR0QA/wD/AP+gvaeTAAAf6UlEQVR4nO3df3TV9X348fdNQiLy6xYLBh2i/JBVhIy1lk6g6IrG6ooWdnbWlmrtPFKMVuH4g82drvbYav0xobq5evBAWdU5VycWa7Q4iMUuMhWrqDSCWEi0pJSAQG6IkPv9I6d8qT8I4CsJIY/HX8m9N5/7uve8SZ58Pp98ksnn8wkAgDgFnT0AAMCRRmABAAQTWAAAwQQWAECwos4eADgyrVmz5rXXXvvc5z7Xt2/fj7iprVu3vvHGG2VlZYWFhR/4gMbGxjVr1rR+fOyxxx5//PEf8RkBPqKM3yIEYu3cuXP8+PFHH310aWnp8uXLb7zxxssuu+yjbPDhhx+eNm3ali1bPvaxj33gA1auXDlu3Lg/+7M/69u3b319fWlp6T333DNixIiP8qQAH4VDhECwJUuWvPzyyw888MDDDz/80EMP7dq1K5/P53K5O+6449RTT504ceKyZcuWLFnymc985oYbbhg+fPgNN9xw4403nnjiiVdccUVK6ZFHHpk4ceJ3vvOdU0455eabb25ubt675d27d1911VWDBg067bTTnnvuufc87913311VVfX0009XVVX94he/SCm950kfe+yxv/iLv7jjjju++tWv7tmz5+qrrx4yZMhnP/vZ5cuXd+DbA3QPeYBQ27dv79evX0lJybnnnvuv//qvO3fuzOfzP/7xj3v27Hnvvfeed955n/rUpxYuXJhSmj59+hlnnJFSOuuss6ZNm5ZSWr169fz581NKp5xyykUXXZRSevTRR3/yk5+klLZs2fLzn/+8uLh47ty5kydPPvbYY3fv3t36jM8++2xKaezYsWecccbgwYMHDx78u9/97v1PumjRokwm06dPn5tuumnx4sVHHXVUZWXl3/zN34wbN64z3y/gSGQPFhCsd+/eK1asmDFjxquvvnrZZZedfvrpKaXzzz//4Ycf3rRp07p161566aXWR/7Lv/zLddddl1KaN2/et771rZRSfX19610rVqxYuHDhqFGjfvazn+3d8pIlS4477rhdu3adeOKJmzZtev755/d93hEjRpSVlZWVldXV1S1btuwDnzSfzz/99NNz5szJ5XJNTU3f/e53P/3pTy9durQj3hegOxFYQLCVK1f+6le/mjdv3vr16++5555f/epXq1ateumll77whS/U1dWNGzdu7yN79OjRo0ePlFJJSUlBQUFKKZ/Pp5SKioqKiopSSn379m1sbNz7+DVr1uTz+U2bNvXt23f27NnvOSVr1qxZc+fOXbx4cf/+/R9++OGU0gc+6cknn5xS+uu//uuFCxc2Nzdfe+21Y8eObWlpadf3BOhuBBYQ7MUXX5w+ffodd9yxdu3a5557rk+fPsOHD1+4cOGf//mfz5s37/e//33+w3+3JpPJpJR279599913P/nkky+88MLkyZP33jt69OjNmzd/85vfPO20095+++3jjjtu36+tqqr67//+75tuumnz5s2tZ7h/4JO2PsUPf/jDBx98sLKy8p577nnzzTcbGhra460Aui2BBQS7+OKLL7300u9///sjRoz4n//5n1tuuaVPnz5Tpkx5+eWXBwwY0NTUtHv37m3btn3g17bWT0FBweLFi88555zy8vJzzz13773XXXfdmWeeOXz48Ouuu+7000/v1avXvl87Z86cqVOn3nTTTeedd96sWbNSSvt50vLy8rq6uoEDB86aNevKK6885phj2uW9ALorl2kA2kU+n3/rrbf2vSTVjh07MpnMe6ro/e69994ZM2bs3r1769at2Wz2/Q9oaGjo169f6yHFNu3/STdt2vSxj32suLj4QDYFcOBcaBRoF5lM5j0X/Ozdu/dBbeED6yql9GFXw/pA+3/SY4899qBGAjhA9mABh5dcLvfOO+9IH6BLE1gAAMGc5A4AEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAARr448979y585prrunbt++OHTsmTpx49tlnV1RUZLPZbDY7adKk8vLyjpkSAKALaSOwnnjiiV27dt18882vvPLKJZdcUldXN2bMmDlz5uRyucGDB9fX1xcU2AcGAPBH2sijyZMnr1q16mtf+9q0adMuv/zydevWjRw5MqXUs2fPkpKSzZs3d8iQAABdSRt7sNasWdPc3Dxq1KgdO3ZUVlZmMpni4uLWu7LZbFHR/r48k8nk8/mwSQEAuog2AutHP/rRzJkzKyoqmpubhwwZcvnll9fW1rbeVVhY2L9///afEACgi2njEOEpp5xSX1+fUsrlctls9lOf+lRVVVVKqbq6euDAgR0xIABAV9PGUbytW7eeffbZvXr12rlz58yZM6dPnz5lypTGxsaamprKysqysrL9bdohQgCgWzqgBnr77bcHDBiw94yr2tra0tLS/Z+AlQQWANBdtWMDCSwAoHtyFSsAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACFbU2QMAwGEqk8l09ggdKp/Pd/YIRw6BBQD70X2ao3vVZHtziBAAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgRfu/e/fu3bNnz3733Xf79es3YMCAr3/96xUVFdlsNpvNTpo0qby8vGOmBADoQjL5fH4/dz/wwANPPPHEwoULU0orV65csWJFc3PznDlzcrnc4MGD6+vrCwo+dB9YJtPGxgHgcJbJZFLqPj/I/NSO1MYhwjfeeKOpqenkk08eP378jh071q1bN3LkyJRSz549S0pKNm/e3CFDAgB0JW0cIqytrX399defeeaZ1atXX3311aNGjSouLm69K5vNFhW18eUAAN1QG3uwstns1KlTBwwYcOaZZzY3N5900km1tbWtdxUWFvbv37/9JwQA6GLaCKxPfvKTzz33XErpnXfeyWQy48ePr6qqSilVV1cPHDiwIwYEAOhq2jijbc+ePRUVFS+//HI+n589e/b5558/ZcqUxsbGmpqaysrKsrKy/W3aSe4AdGVOcueQHdC7uXXr1r59++79hcHa2trS0tI2T8ASWAB0aQKLQ9aO76bAAqBLE1gcMldyBwAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgWFFnD9AdZTKZzh6hQ+Xz+fbYrLcRgMOWwOoc3edHZTtHkDcSgMORQ4QAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAsAMNrHw+365zAAAcMYoO5EENDQ2nnXbagw8+OHTo0IqKimw2m81mJ02aVF5e3t7zAQB0OW0HVj6f/973vjd06NBMJrNgwYIxY8bMmTMnl8sNHjy4vr6+oMBBRgCAP9J2Ht16660XXHBBz549U0rr1q0bOXJkSqlnz54lJSWbN29u9wEBALqaNgJr+fLlmzZtGj9+fOun27dvLy4ubv04m80WFR3QEUYAgG6ljUK68cYbc7ncWWed9eKLL86cOXPixIm1tbWtdxUWFvbv37/9JwQA6GLaCKwf//jHuVwupTRz5syKioqCgoL77rtvxowZ1dXVAwcO7JAJAQC6mDYCq7S0tPWDXr16HX/88aNHj77rrrsmTZpUU1NTWVnZ/uMBAHQ9mUO4wFVtbW1paWmbJ2BlMoey8e4gk8l0n/cl024XUctkMil1ozfSvyboeL7PcMja8d0UWB9GYMVs2Tc+oJ35PsMhcxUrAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAhW1NkDAAckk8l09ggdJ5/Pt8dmu9V7mNrtbQQOhMCCrqH7/Khs5wjyRgIdwSFCAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACFbU2QMAAIeFTCbT2SN0nHw+367bF1gAQEoptW9xHE46ICQdIgQACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGBF+7+7vr5+5syZ2Wy2f//+gwYNuvjiiysqKrLZbDabnTRpUnl5ecdMCQDQhbQRWEuWLBk3bty1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a1JKr7/++oQJEzZu3Dh37twvfvGLHTnz/g0aNOif/umf9r2lpaVl1qxZP/3pTy+44IK1a9f+3d/93ZtvvnnllVfmcrm//du/Xbx4cX19/fr162+//fZVq1b179//hRdeuPrqq8eMGbN69erbb799wYIFnfVaAIAoHXoO1qpVq0477bS9n5588skTJkxYv3792rVrV61adcMNN9x0000ppYceemjEiBEvvPBCS0tLVVVVSmn58uX333//ggULbrnllo4cuE0bN2684g/mzp2bUvrlL3/561//+sUXX/zEJz6xcuXKrVu31tfXpz/8pdWUUkNDQ11d3Z133jlhwoSrrrpq1KhRjz76aEpp8eLFo0aN6tyXAwCE6NDAKioq2rVr13tuPOmkk37wgx/cf//9P/rRj956662U0p/+6Z/ee++9P/jBD2bMmPH5z38+pXT22WefcMIJZ5555oYNGzpy4Db16tXrM3/Qmkc///nPv/SlL/Xt23f69OkFBW2/vVOnTm3dpffYY48dVjvnAIBD1qGBNWzYsGXLlu399Iknnrjyyiurq6v/8i//csuWLX/1V3/Vevu4ceMeffTRurq6cePGPfXUUymlIUOGpJQymUxLS0tHDtym/v37f+UPzjrrrJTSxo0b/+RP/iSl1KNHj31PeN+2bdsHbmHEiBFNTU2vvfZaU1PTsGHDOmZsAKBddWhgff7zn9+wYcPzzz+fUnr33XdvueWWadOmPf744zNmzJg9e/be38i78847c7ncbbfddvPNNy9durQjJ/zoysvLq6urU0orV6589913s9ls6265Z5555j2P3BuLF1xwwZVXXmn3FQAcMTr0JPd+/fotWrTo7//+7xsbG+vq6qZOnfrZz3726KOPvvDCC59++uljjjlm06ZNzz777MSJEy+88MLRo0f/5je/+bd/+7eXXnqpI4c8KC+99FJpaeneT1esWHHOOed86UtfOv/883ft2lVUVDRhwoT58+dPmDBh2LBh+x4xHDp06Kuvvjp//vxLLrlk2rRp3/72t++6667OeAUAQLyOvkxDq7fffrtfv357r2jQ1NS0c+fOY445prGxsUePHj169Egptf6C4aE//Qdqp9fzPvX19QMGDBgyZEjrSWM7duzo3bv3ex6ze/fulpaW4uLiDRs2XHTRRfsePAUAurQO3YO116BBg/b99KijjjrqqKNSSvteRCq+rjrQwIED9/30/XWVUioqKkopPf7449///ve/9a1vddBkAED7a2MPFh/F73//+2OOOWb/j9mxY0dBQUGblycFALoQgQUAEMwfewYACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAINj/AyRCFfgTxiuGAAAAAElFTkSuQmCC",
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ]
+ },
"metadata": {},
- "outputs": [],
- "prompt_number": 1
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "chart borders = toRenderable layout\n",
- " where\n",
- " layout = \n",
- " layout_title .~ \"Sample Bars\" ++ btitle\n",
- " $ layout_title_style . font_size .~ 10\n",
- " $ layout_x_axis . laxis_generate .~ autoIndexAxis alabels\n",
- " $ layout_y_axis . laxis_override .~ axisGridHide\n",
- " $ layout_left_axis_visibility . axis_show_ticks .~ False\n",
- " $ layout_plots .~ [ plotBars bars2 ]\n",
- " $ def :: Layout PlotIndex Double\n",
- "\n",
- " bars2 = plot_bars_titles .~ [\"Cash\",\"Equity\"]\n",
- " $ plot_bars_values .~ addIndexes [[20,45],[45,30],[30,20],[70,25]]\n",
- " $ plot_bars_style .~ BarsClustered\n",
- " $ plot_bars_spacing .~ BarsFixGap 30 5\n",
- " $ plot_bars_item_styles .~ map mkstyle (cycle defaultColorSeq)\n",
- " $ def\n",
- "\n",
- " alabels = [ \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\" ]\n",
- "\n",
- " btitle = if borders then \"\" else \" (no borders)\"\n",
- " bstyle = if borders then Just (solidLine 1.0 $ opaque black) else Nothing\n",
- " mkstyle c = (solidFillStyle c, bstyle)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [],
- "prompt_number": 4
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "chart True"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAABmJLR0QA/wD/AP+gvaeTAAAf6UlEQVR4nO3df3TV9X348fdNQiLy6xYLBh2i/JBVhIy1lk6g6IrG6ooWdnbWlmrtPFKMVuH4g82drvbYav0xobq5evBAWdU5VycWa7Q4iMUuMhWrqDSCWEi0pJSAQG6IkPv9I6d8qT8I4CsJIY/HX8m9N5/7uve8SZ58Pp98ksnn8wkAgDgFnT0AAMCRRmABAAQTWAAAwQQWAECwos4eADgyrVmz5rXXXvvc5z7Xt2/fj7iprVu3vvHGG2VlZYWFhR/4gMbGxjVr1rR+fOyxxx5//PEf8RkBPqKM3yIEYu3cuXP8+PFHH310aWnp8uXLb7zxxssuu+yjbPDhhx+eNm3ali1bPvaxj33gA1auXDlu3Lg/+7M/69u3b319fWlp6T333DNixIiP8qQAH4VDhECwJUuWvPzyyw888MDDDz/80EMP7dq1K5/P53K5O+6449RTT504ceKyZcuWLFnymc985oYbbhg+fPgNN9xw4403nnjiiVdccUVK6ZFHHpk4ceJ3vvOdU0455eabb25ubt675d27d1911VWDBg067bTTnnvuufc87913311VVfX0009XVVX94he/SCm950kfe+yxv/iLv7jjjju++tWv7tmz5+qrrx4yZMhnP/vZ5cuXd+DbA3QPeYBQ27dv79evX0lJybnnnvuv//qvO3fuzOfzP/7xj3v27Hnvvfeed955n/rUpxYuXJhSmj59+hlnnJFSOuuss6ZNm5ZSWr169fz581NKp5xyykUXXZRSevTRR3/yk5+klLZs2fLzn/+8uLh47ty5kydPPvbYY3fv3t36jM8++2xKaezYsWecccbgwYMHDx78u9/97v1PumjRokwm06dPn5tuumnx4sVHHXVUZWXl3/zN34wbN64z3y/gSGQPFhCsd+/eK1asmDFjxquvvnrZZZedfvrpKaXzzz//4Ycf3rRp07p161566aXWR/7Lv/zLddddl1KaN2/et771rZRSfX19610rVqxYuHDhqFGjfvazn+3d8pIlS4477rhdu3adeOKJmzZtev755/d93hEjRpSVlZWVldXV1S1btuwDnzSfzz/99NNz5szJ5XJNTU3f/e53P/3pTy9durQj3hegOxFYQLCVK1f+6le/mjdv3vr16++5555f/epXq1ateumll77whS/U1dWNGzdu7yN79OjRo0ePlFJJSUlBQUFKKZ/Pp5SKioqKiopSSn379m1sbNz7+DVr1uTz+U2bNvXt23f27NnvOSVr1qxZc+fOXbx4cf/+/R9++OGU0gc+6cknn5xS+uu//uuFCxc2Nzdfe+21Y8eObWlpadf3BOhuBBYQ7MUXX5w+ffodd9yxdu3a5557rk+fPsOHD1+4cOGf//mfz5s37/e//33+w3+3JpPJpJR279599913P/nkky+88MLkyZP33jt69OjNmzd/85vfPO20095+++3jjjtu36+tqqr67//+75tuumnz5s2tZ7h/4JO2PsUPf/jDBx98sLKy8p577nnzzTcbGhra460Aui2BBQS7+OKLL7300u9///sjRoz4n//5n1tuuaVPnz5Tpkx5+eWXBwwY0NTUtHv37m3btn3g17bWT0FBweLFi88555zy8vJzzz13773XXXfdmWeeOXz48Ouuu+7000/v1avXvl87Z86cqVOn3nTTTeedd96sWbNSSvt50vLy8rq6uoEDB86aNevKK6885phj2uW9ALorl2kA2kU+n3/rrbf2vSTVjh07MpnMe6ro/e69994ZM2bs3r1769at2Wz2/Q9oaGjo169f6yHFNu3/STdt2vSxj32suLj4QDYFcOBcaBRoF5lM5j0X/Ozdu/dBbeED6yql9GFXw/pA+3/SY4899qBGAjhA9mABh5dcLvfOO+9IH6BLE1gAAMGc5A4AEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAARr448979y585prrunbt++OHTsmTpx49tlnV1RUZLPZbDY7adKk8vLyjpkSAKALaSOwnnjiiV27dt18882vvPLKJZdcUldXN2bMmDlz5uRyucGDB9fX1xcU2AcGAPBH2sijyZMnr1q16mtf+9q0adMuv/zydevWjRw5MqXUs2fPkpKSzZs3d8iQAABdSRt7sNasWdPc3Dxq1KgdO3ZUVlZmMpni4uLWu7LZbFHR/r48k8nk8/mwSQEAuog2AutHP/rRzJkzKyoqmpubhwwZcvnll9fW1rbeVVhY2L9///afEACgi2njEOEpp5xSX1+fUsrlctls9lOf+lRVVVVKqbq6euDAgR0xIABAV9PGUbytW7eeffbZvXr12rlz58yZM6dPnz5lypTGxsaamprKysqysrL9bdohQgCgWzqgBnr77bcHDBiw94yr2tra0tLS/Z+AlQQWANBdtWMDCSwAoHtyFSsAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACFbU2QMAwGEqk8l09ggdKp/Pd/YIRw6BBQD70X2ao3vVZHtziBAAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgRfu/e/fu3bNnz3733Xf79es3YMCAr3/96xUVFdlsNpvNTpo0qby8vGOmBADoQjL5fH4/dz/wwANPPPHEwoULU0orV65csWJFc3PznDlzcrnc4MGD6+vrCwo+dB9YJtPGxgHgcJbJZFLqPj/I/NSO1MYhwjfeeKOpqenkk08eP378jh071q1bN3LkyJRSz549S0pKNm/e3CFDAgB0JW0cIqytrX399defeeaZ1atXX3311aNGjSouLm69K5vNFhW18eUAAN1QG3uwstns1KlTBwwYcOaZZzY3N5900km1tbWtdxUWFvbv37/9JwQA6GLaCKxPfvKTzz33XErpnXfeyWQy48ePr6qqSilVV1cPHDiwIwYEAOhq2jijbc+ePRUVFS+//HI+n589e/b5558/ZcqUxsbGmpqaysrKsrKy/W3aSe4AdGVOcueQHdC7uXXr1r59++79hcHa2trS0tI2T8ASWAB0aQKLQ9aO76bAAqBLE1gcMldyBwAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgWFFnD9AdZTKZzh6hQ+Xz+fbYrLcRgMOWwOoc3edHZTtHkDcSgMORQ4QAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAsAMNrHw+365zAAAcMYoO5EENDQ2nnXbagw8+OHTo0IqKimw2m81mJ02aVF5e3t7zAQB0OW0HVj6f/973vjd06NBMJrNgwYIxY8bMmTMnl8sNHjy4vr6+oMBBRgCAP9J2Ht16660XXHBBz549U0rr1q0bOXJkSqlnz54lJSWbN29u9wEBALqaNgJr+fLlmzZtGj9+fOun27dvLy4ubv04m80WFR3QEUYAgG6ljUK68cYbc7ncWWed9eKLL86cOXPixIm1tbWtdxUWFvbv37/9JwQA6GLaCKwf//jHuVwupTRz5syKioqCgoL77rtvxowZ1dXVAwcO7JAJAQC6mDYCq7S0tPWDXr16HX/88aNHj77rrrsmTZpUU1NTWVnZ/uMBAHQ9mUO4wFVtbW1paWmbJ2BlMoey8e4gk8l0n/cl024XUctkMil1ozfSvyboeL7PcMja8d0UWB9GYMVs2Tc+oJ35PsMhcxUrAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAhW1NkDAAckk8l09ggdJ5/Pt8dmu9V7mNrtbQQOhMCCrqH7/Khs5wjyRgIdwSFCAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACFbU2QMAAIeFTCbT2SN0nHw+367bF1gAQEoptW9xHE46ICQdIgQACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGBF+7+7vr5+5syZ2Wy2f//+gwYNuvjiiysqKrLZbDabnTRpUnl5ecdMCQDQhbQRWEuWLBk3bty1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a1JKr7/++oQJEzZu3Dh37twvfvGLHTnz/g0aNOif/umf9r2lpaVl1qxZP/3pTy+44IK1a9f+3d/93ZtvvnnllVfmcrm//du/Xbx4cX19/fr162+//fZVq1b179//hRdeuPrqq8eMGbN69erbb799wYIFnfVaAIAoHXoO1qpVq0477bS9n5588skTJkxYv3792rVrV61adcMNN9x0000ppYceemjEiBEvvPBCS0tLVVVVSmn58uX333//ggULbrnllo4cuE0bN2684g/mzp2bUvrlL3/561//+sUXX/zEJz6xcuXKrVu31tfXpz/8pdWUUkNDQ11d3Z133jlhwoSrrrpq1KhRjz76aEpp8eLFo0aN6tyXAwCE6NDAKioq2rVr13tuPOmkk37wgx/cf//9P/rRj956662U0p/+6Z/ee++9P/jBD2bMmPH5z38+pXT22WefcMIJZ5555oYNGzpy4Db16tXrM3/Qmkc///nPv/SlL/Xt23f69OkFBW2/vVOnTm3dpffYY48dVjvnAIBD1qGBNWzYsGXLlu399Iknnrjyyiurq6v/8i//csuWLX/1V3/Vevu4ceMeffTRurq6cePGPfXUUymlIUOGpJQymUxLS0tHDtym/v37f+UPzjrrrJTSxo0b/+RP/iSl1KNHj31PeN+2bdsHbmHEiBFNTU2vvfZaU1PTsGHDOmZsAKBddWhgff7zn9+wYcPzzz+fUnr33XdvueWWadOmPf744zNmzJg9e/be38i78847c7ncbbfddvPNNy9durQjJ/zoysvLq6urU0orV6589913s9ls6265Z5555j2P3BuLF1xwwZVXXmn3FQAcMTr0JPd+/fotWrTo7//+7xsbG+vq6qZOnfrZz3726KOPvvDCC59++uljjjlm06ZNzz777MSJEy+88MLRo0f/5je/+bd/+7eXXnqpI4c8KC+99FJpaeneT1esWHHOOed86UtfOv/883ft2lVUVDRhwoT58+dPmDBh2LBh+x4xHDp06Kuvvjp//vxLLrlk2rRp3/72t++6667OeAUAQLyOvkxDq7fffrtfv357r2jQ1NS0c+fOY445prGxsUePHj169Egptf6C4aE//Qdqp9fzPvX19QMGDBgyZEjrSWM7duzo3bv3ex6ze/fulpaW4uLiDRs2XHTRRfsePAUAurQO3YO116BBg/b99KijjjrqqKNSSvteRCq+rjrQwIED9/30/XWVUioqKkopPf7449///ve/9a1vddBkAED7a2MPFh/F73//+2OOOWb/j9mxY0dBQUGblycFALoQgQUAEMwfewYACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAINj/AyRCFfgTxiuGAAAAAElFTkSuQmCC",
- "svg": [
- "\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
+ "output_type": "display_data"
}
],
- "metadata": {}
+ "source": [
+ "chart True"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "whole-grocery",
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
+ "outputs": [],
+ "source": []
}
- ]
-}
\ No newline at end of file
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Haskell",
+ "language": "haskell",
+ "name": "haskell"
+ },
+ "language": "haskell",
+ "language_info": {
+ "name": ""
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/ihaskell-display/ihaskell-diagrams/DiagramsExample.ipynb b/ihaskell-display/ihaskell-diagrams/DiagramsExample.ipynb
new file mode 100644
index 00000000..7da4d1c4
--- /dev/null
+++ b/ihaskell-display/ihaskell-diagrams/DiagramsExample.ipynb
@@ -0,0 +1,207 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "b52d8903-366a-49d7-950b-9f34c63bf186",
+ "metadata": {},
+ "source": [
+ "# Example and test notebook for *ihaskell-diagrams*\n",
+ "\n",
+ "Diagrams User Manual: https://archives.haskell.org/projects.haskell.org/diagrams/doc/manual.html"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4e223cf7-c975-4132-92e5-0c7ab63e01de",
+ "metadata": {},
+ "source": [
+ "## Draw an Apollonian Gasket\n",
+ "\n",
+ "https://hackage.haskell.org/package/diagrams-contrib/docs/Diagrams-TwoD-Apollonian.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "21769863-012e-43bd-ae3b-04ddc24c5f0e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import Diagrams.Prelude\n",
+ "import Diagrams.TwoD.Apollonian\n",
+ "diagram $ apollonianGasket 0.01 2 4 7"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Haskell",
+ "language": "haskell",
+ "name": "haskell"
+ },
+ "language_info": {
+ "codemirror_mode": "ihaskell",
+ "file_extension": ".hs",
+ "mimetype": "text/x-haskell",
+ "name": "haskell",
+ "pygments_lexer": "Haskell",
+ "version": "8.10.4"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/ihaskell-display/ihaskell-diagrams/Test.ipynb b/ihaskell-display/ihaskell-diagrams/Test.ipynb
deleted file mode 100644
index 12cf3fc4..00000000
--- a/ihaskell-display/ihaskell-diagrams/Test.ipynb
+++ /dev/null
@@ -1,331 +0,0 @@
-{
- "metadata": {
- "language": "haskell",
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import Graphics.Rendering.Chart\n",
- "import Data.Colour\n",
- "import Data.Colour.Names\n",
- "import Data.Default.Class\n",
- "import Control.Lens"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [],
- "prompt_number": 1
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "chart borders = toRenderable layout\n",
- " where\n",
- " layout = \n",
- " layout_title .~ \"Sample Bars\" ++ btitle\n",
- " $ layout_title_style . font_size .~ 10\n",
- " $ layout_x_axis . laxis_generate .~ autoIndexAxis alabels\n",
- " $ layout_y_axis . laxis_override .~ axisGridHide\n",
- " $ layout_left_axis_visibility . axis_show_ticks .~ False\n",
- " $ layout_plots .~ [ plotBars bars2 ]\n",
- " $ def :: Layout PlotIndex Double\n",
- "\n",
- " bars2 = plot_bars_titles .~ [\"Cash\",\"Equity\"]\n",
- " $ plot_bars_values .~ addIndexes [[20,45],[45,30],[30,20],[70,25]]\n",
- " $ plot_bars_style .~ BarsClustered\n",
- " $ plot_bars_spacing .~ BarsFixGap 30 5\n",
- " $ plot_bars_item_styles .~ map mkstyle (cycle defaultColorSeq)\n",
- " $ def\n",
- "\n",
- " alabels = [ \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\" ]\n",
- "\n",
- " btitle = if borders then \"\" else \" (no borders)\"\n",
- " bstyle = if borders then Just (solidLine 1.0 $ opaque black) else Nothing\n",
- " mkstyle c = (solidFillStyle c, bstyle)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [],
- "prompt_number": 4
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "chart True"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAABmJLR0QA/wD/AP+gvaeTAAAf6UlEQVR4nO3df3TV9X348fdNQiLy6xYLBh2i/JBVhIy1lk6g6IrG6ooWdnbWlmrtPFKMVuH4g82drvbYav0xobq5evBAWdU5VycWa7Q4iMUuMhWrqDSCWEi0pJSAQG6IkPv9I6d8qT8I4CsJIY/HX8m9N5/7uve8SZ58Pp98ksnn8wkAgDgFnT0AAMCRRmABAAQTWAAAwQQWAECwos4eADgyrVmz5rXXXvvc5z7Xt2/fj7iprVu3vvHGG2VlZYWFhR/4gMbGxjVr1rR+fOyxxx5//PEf8RkBPqKM3yIEYu3cuXP8+PFHH310aWnp8uXLb7zxxssuu+yjbPDhhx+eNm3ali1bPvaxj33gA1auXDlu3Lg/+7M/69u3b319fWlp6T333DNixIiP8qQAH4VDhECwJUuWvPzyyw888MDDDz/80EMP7dq1K5/P53K5O+6449RTT504ceKyZcuWLFnymc985oYbbhg+fPgNN9xw4403nnjiiVdccUVK6ZFHHpk4ceJ3vvOdU0455eabb25ubt675d27d1911VWDBg067bTTnnvuufc87913311VVfX0009XVVX94he/SCm950kfe+yxv/iLv7jjjju++tWv7tmz5+qrrx4yZMhnP/vZ5cuXd+DbA3QPeYBQ27dv79evX0lJybnnnvuv//qvO3fuzOfzP/7xj3v27Hnvvfeed955n/rUpxYuXJhSmj59+hlnnJFSOuuss6ZNm5ZSWr169fz581NKp5xyykUXXZRSevTRR3/yk5+klLZs2fLzn/+8uLh47ty5kydPPvbYY3fv3t36jM8++2xKaezYsWecccbgwYMHDx78u9/97v1PumjRokwm06dPn5tuumnx4sVHHXVUZWXl3/zN34wbN64z3y/gSGQPFhCsd+/eK1asmDFjxquvvnrZZZedfvrpKaXzzz//4Ycf3rRp07p161566aXWR/7Lv/zLddddl1KaN2/et771rZRSfX19610rVqxYuHDhqFGjfvazn+3d8pIlS4477rhdu3adeOKJmzZtev755/d93hEjRpSVlZWVldXV1S1btuwDnzSfzz/99NNz5szJ5XJNTU3f/e53P/3pTy9durQj3hegOxFYQLCVK1f+6le/mjdv3vr16++5555f/epXq1ateumll77whS/U1dWNGzdu7yN79OjRo0ePlFJJSUlBQUFKKZ/Pp5SKioqKiopSSn379m1sbNz7+DVr1uTz+U2bNvXt23f27NnvOSVr1qxZc+fOXbx4cf/+/R9++OGU0gc+6cknn5xS+uu//uuFCxc2Nzdfe+21Y8eObWlpadf3BOhuBBYQ7MUXX5w+ffodd9yxdu3a5557rk+fPsOHD1+4cOGf//mfz5s37/e//33+w3+3JpPJpJR279599913P/nkky+88MLkyZP33jt69OjNmzd/85vfPO20095+++3jjjtu36+tqqr67//+75tuumnz5s2tZ7h/4JO2PsUPf/jDBx98sLKy8p577nnzzTcbGhra460Aui2BBQS7+OKLL7300u9///sjRoz4n//5n1tuuaVPnz5Tpkx5+eWXBwwY0NTUtHv37m3btn3g17bWT0FBweLFi88555zy8vJzzz13773XXXfdmWeeOXz48Ouuu+7000/v1avXvl87Z86cqVOn3nTTTeedd96sWbNSSvt50vLy8rq6uoEDB86aNevKK6885phj2uW9ALorl2kA2kU+n3/rrbf2vSTVjh07MpnMe6ro/e69994ZM2bs3r1769at2Wz2/Q9oaGjo169f6yHFNu3/STdt2vSxj32suLj4QDYFcOBcaBRoF5lM5j0X/Ozdu/dBbeED6yql9GFXw/pA+3/SY4899qBGAjhA9mABh5dcLvfOO+9IH6BLE1gAAMGc5A4AEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAARr448979y585prrunbt++OHTsmTpx49tlnV1RUZLPZbDY7adKk8vLyjpkSAKALaSOwnnjiiV27dt18882vvPLKJZdcUldXN2bMmDlz5uRyucGDB9fX1xcU2AcGAPBH2sijyZMnr1q16mtf+9q0adMuv/zydevWjRw5MqXUs2fPkpKSzZs3d8iQAABdSRt7sNasWdPc3Dxq1KgdO3ZUVlZmMpni4uLWu7LZbFHR/r48k8nk8/mwSQEAuog2AutHP/rRzJkzKyoqmpubhwwZcvnll9fW1rbeVVhY2L9///afEACgi2njEOEpp5xSX1+fUsrlctls9lOf+lRVVVVKqbq6euDAgR0xIABAV9PGUbytW7eeffbZvXr12rlz58yZM6dPnz5lypTGxsaamprKysqysrL9bdohQgCgWzqgBnr77bcHDBiw94yr2tra0tLS/Z+AlQQWANBdtWMDCSwAoHtyFSsAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACFbU2QMAwGEqk8l09ggdKp/Pd/YIRw6BBQD70X2ao3vVZHtziBAAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgRfu/e/fu3bNnz3733Xf79es3YMCAr3/96xUVFdlsNpvNTpo0qby8vGOmBADoQjL5fH4/dz/wwANPPPHEwoULU0orV65csWJFc3PznDlzcrnc4MGD6+vrCwo+dB9YJtPGxgHgcJbJZFLqPj/I/NSO1MYhwjfeeKOpqenkk08eP378jh071q1bN3LkyJRSz549S0pKNm/e3CFDAgB0JW0cIqytrX399defeeaZ1atXX3311aNGjSouLm69K5vNFhW18eUAAN1QG3uwstns1KlTBwwYcOaZZzY3N5900km1tbWtdxUWFvbv37/9JwQA6GLaCKxPfvKTzz33XErpnXfeyWQy48ePr6qqSilVV1cPHDiwIwYEAOhq2jijbc+ePRUVFS+//HI+n589e/b5558/ZcqUxsbGmpqaysrKsrKy/W3aSe4AdGVOcueQHdC7uXXr1r59++79hcHa2trS0tI2T8ASWAB0aQKLQ9aO76bAAqBLE1gcMldyBwAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgWFFnD9AdZTKZzh6hQ+Xz+fbYrLcRgMOWwOoc3edHZTtHkDcSgMORQ4QAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAsAMNrHw+365zAAAcMYoO5EENDQ2nnXbagw8+OHTo0IqKimw2m81mJ02aVF5e3t7zAQB0OW0HVj6f/973vjd06NBMJrNgwYIxY8bMmTMnl8sNHjy4vr6+oMBBRgCAP9J2Ht16660XXHBBz549U0rr1q0bOXJkSqlnz54lJSWbN29u9wEBALqaNgJr+fLlmzZtGj9+fOun27dvLy4ubv04m80WFR3QEUYAgG6ljUK68cYbc7ncWWed9eKLL86cOXPixIm1tbWtdxUWFvbv37/9JwQA6GLaCKwf//jHuVwupTRz5syKioqCgoL77rtvxowZ1dXVAwcO7JAJAQC6mDYCq7S0tPWDXr16HX/88aNHj77rrrsmTZpUU1NTWVnZ/uMBAHQ9mUO4wFVtbW1paWmbJ2BlMoey8e4gk8l0n/cl024XUctkMil1ozfSvyboeL7PcMja8d0UWB9GYMVs2Tc+oJ35PsMhcxUrAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAhW1NkDAAckk8l09ggdJ5/Pt8dmu9V7mNrtbQQOhMCCrqH7/Khs5wjyRgIdwSFCAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACFbU2QMAAIeFTCbT2SN0nHw+367bF1gAQEoptW9xHE46ICQdIgQACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGBF+7+7vr5+5syZ2Wy2f//+gwYNuvjiiysqKrLZbDabnTRpUnl5ecdMCQDQhbQRWEuWLBk3bty1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a1JKr7/++oQJEzZu3Dh37twvfvGLHTnz/g0aNOif/umf9r2lpaVl1qxZP/3pTy+44IK1a9f+3d/93ZtvvnnllVfmcrm//du/Xbx4cX19/fr162+//fZVq1b179//hRdeuPrqq8eMGbN69erbb799wYIFnfVaAIAoHXoO1qpVq0477bS9n5588skTJkxYv3792rVrV61adcMNN9x0000ppYceemjEiBEvvPBCS0tLVVVVSmn58uX333//ggULbrnllo4cuE0bN2684g/mzp2bUvrlL3/561//+sUXX/zEJz6xcuXKrVu31tfXpz/8pdWUUkNDQ11d3Z133jlhwoSrrrpq1KhRjz76aEpp8eLFo0aN6tyXAwCE6NDAKioq2rVr13tuPOmkk37wgx/cf//9P/rRj956662U0p/+6Z/ee++9P/jBD2bMmPH5z38+pXT22WefcMIJZ5555oYNGzpy4Db16tXrM3/Qmkc///nPv/SlL/Xt23f69OkFBW2/vVOnTm3dpffYY48dVjvnAIBD1qGBNWzYsGXLlu399Iknnrjyyiurq6v/8i//csuWLX/1V3/Vevu4ceMeffTRurq6cePGPfXUUymlIUOGpJQymUxLS0tHDtym/v37f+UPzjrrrJTSxo0b/+RP/iSl1KNHj31PeN+2bdsHbmHEiBFNTU2vvfZaU1PTsGHDOmZsAKBddWhgff7zn9+wYcPzzz+fUnr33XdvueWWadOmPf744zNmzJg9e/be38i78847c7ncbbfddvPNNy9durQjJ/zoysvLq6urU0orV6589913s9ls6265Z5555j2P3BuLF1xwwZVXXmn3FQAcMTr0JPd+/fotWrTo7//+7xsbG+vq6qZOnfrZz3726KOPvvDCC59++uljjjlm06ZNzz777MSJEy+88MLRo0f/5je/+bd/+7eXXnqpI4c8KC+99FJpaeneT1esWHHOOed86UtfOv/883ft2lVUVDRhwoT58+dPmDBh2LBh+x4xHDp06Kuvvjp//vxLLrlk2rRp3/72t++6667OeAUAQLyOvkxDq7fffrtfv357r2jQ1NS0c+fOY445prGxsUePHj169Egptf6C4aE//Qdqp9fzPvX19QMGDBgyZEjrSWM7duzo3bv3ex6ze/fulpaW4uLiDRs2XHTRRfsePAUAurQO3YO116BBg/b99KijjjrqqKNSSvteRCq+rjrQwIED9/30/XWVUioqKkopPf7449///ve/9a1vddBkAED7a2MPFh/F73//+2OOOWb/j9mxY0dBQUGblycFALoQgQUAEMwfewYACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAINj/AyRCFfgTxiuGAAAAAElFTkSuQmCC",
- "svg": [
- "\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-}
\ No newline at end of file
diff --git a/ihaskell-display/ihaskell-juicypixels/test.ipynb b/ihaskell-display/ihaskell-juicypixels/test.ipynb
index 79923308..a9da7cb5 100644
--- a/ihaskell-display/ihaskell-juicypixels/test.ipynb
+++ b/ihaskell-display/ihaskell-juicypixels/test.ipynb
@@ -18,7 +18,10 @@
"execution_count": null,
"metadata": {
"collapsed": false,
- "hidden": false
+ "hidden": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -43,10 +46,12 @@
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
+ "mimetype": "text/x-haskell",
"name": "haskell",
- "version": "7.10.3"
+ "pygments_lexer": "Haskell",
+ "version": "8.10.4"
}
},
"nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 4
}
diff --git a/notebooks/Conjugate Gradient.ipynb b/notebooks/Conjugate Gradient.ipynb
index 102a0bd0..fd9b4ba0 100644
--- a/notebooks/Conjugate Gradient.ipynb
+++ b/notebooks/Conjugate Gradient.ipynb
@@ -161,7 +161,10 @@
"cell_type": "code",
"execution_count": 1,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -175,7 +178,10 @@
"cell_type": "code",
"execution_count": 2,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -209,7 +215,10 @@
"cell_type": "code",
"execution_count": 3,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -241,7 +250,10 @@
"cell_type": "code",
"execution_count": 4,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -266,7 +278,10 @@
"cell_type": "code",
"execution_count": 5,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -313,7 +328,10 @@
"cell_type": "code",
"execution_count": 6,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -377,7 +395,10 @@
"cell_type": "code",
"execution_count": 7,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -427,7 +448,10 @@
"cell_type": "code",
"execution_count": 8,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [
{
@@ -503,10 +527,14 @@
"name": "haskell"
},
"language_info": {
+ "codemirror_mode": "ihaskell",
+ "file_extension": ".hs",
+ "mimetype": "text/x-haskell",
"name": "haskell",
- "version": "7.8.3"
+ "pygments_lexer": "Haskell",
+ "version": "8.10.4"
}
},
"nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 4
}
diff --git a/notebooks/Gradient-Descent.ipynb b/notebooks/Gradient-Descent.ipynb
index 77583a28..c2e80dee 100644
--- a/notebooks/Gradient-Descent.ipynb
+++ b/notebooks/Gradient-Descent.ipynb
@@ -46,7 +46,10 @@
"cell_type": "code",
"execution_count": 1,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -84,7 +87,10 @@
"cell_type": "code",
"execution_count": 2,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -113,7 +119,10 @@
"cell_type": "code",
"execution_count": 3,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -135,7 +144,10 @@
"cell_type": "code",
"execution_count": 4,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -171,7 +183,10 @@
"cell_type": "code",
"execution_count": 5,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -199,7 +214,10 @@
"cell_type": "code",
"execution_count": 6,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -218,7 +236,10 @@
"cell_type": "code",
"execution_count": 7,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [
{
@@ -252,7 +273,10 @@
"cell_type": "code",
"execution_count": 8,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -286,7 +310,10 @@
"cell_type": "code",
"execution_count": 9,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -321,7 +348,10 @@
"cell_type": "code",
"execution_count": 10,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": [
@@ -350,7 +380,10 @@
"cell_type": "code",
"execution_count": 11,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [
{
@@ -392,10 +425,14 @@
"name": "haskell"
},
"language_info": {
+ "codemirror_mode": "ihaskell",
+ "file_extension": ".hs",
+ "mimetype": "text/x-haskell",
"name": "haskell",
- "version": "7.8.3"
+ "pygments_lexer": "Haskell",
+ "version": "8.10.4"
}
},
"nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 4
}
diff --git a/notebooks/IHaskell.ipynb b/notebooks/IHaskell.ipynb
index 85b8e30d..cc762343 100644
--- a/notebooks/IHaskell.ipynb
+++ b/notebooks/IHaskell.ipynb
@@ -1921,9 +1921,10 @@
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
+ "mimetype": "text/x-haskell",
"name": "haskell",
"pygments_lexer": "Haskell",
- "version": "8.4.4"
+ "version": "8.10.4"
},
"latex_envs": {
"bibliofile": "biblio.bib",
@@ -1944,5 +1945,5 @@
}
},
"nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
}