BSD-3-Clause licensed by Douglas Burke
Maintained by [email protected]
This version can be pinned in stack with:ihaskell-hvega-,1219

Module documentation for


View Vega-Lite visualizations created by the hvega package in IHaskell notebooks.

When used with Jupyter notebooks it relies on Vega-Embed to do the hard work of parsing and displaying the Vega Lite specification.

If run in a Jupyter Lab then the native Vega support is used for displaying the Vega Lite specifications. I recommend using Tweag I/O’s jupyterWith environment to set this up, and have a rudimentary shell.nix example in the notebooks directory.

This code is released under the BSD3 license.

Current status

The display should work correctly when using the IHaskell notebook interface, supporting features included in Vega-Lite 4 (this is new to version 0.3, as earlier versions were limited to features in Vega-Lite 3).

Support for the Jupyter lab interface is very limited since there is a curious combination of IHaskell and Jupyter lab issues (including whether you are using v1.2 or v2). This is very annoying.


For the latest version of this document, please see

Support text 2.1 and IHaskell 0.11 (I am still not using IHaskell so there’s no guarantee this will work).

Support aeson 2.2. I have not been using IHaskell recently so I do not know if this even builds nowadays.

Support aeson 2.1.

Improve links in the haddock documentation. There are no code changes.

Support text 2.0.

Bump minimum supported IHaskell version to 0.10.

Bump to support version hvega- and version 2.0 of aeson, although it will need updates to IHaskell components such as ipython-kernel before you can combine all the pieces.

Bump to support version hvega-

Bump to support version hvega-

Support for the IHaskell notebook has been updated to version 4 of the Vega-Lite schema. Finally.

Support for the Jupyter Lab interface remains stuck in a maze of very-twisty paths… -

Bump the maximum version of hvega.

The module now exports the VegaLiteLab type (provided by Alexey Kuleshevich (lehins). This type is used to support display in Jupyter Lab as well as notebooks, and is a somewhat experimental feature.

The module now builds without warnings on GHC 8.8.1.

This release has been marked as compatible with version 0.4 of hvega, but care should be taken as it is possible to create visualizations that either do not display correctly, or do not display at all: these are visualizations that take advantages of Vega-Lite functionality not supported by the Javascript display code (presumably because of our use of an old Vega-Lite mimetype version in IHaskell; this will hopefuly be addressed once a version of IHaskell is released with support for custom mimetypes).

Updated the upper bounds of ihaskell to allow version 0.10.

Updated the supported hvega range to include version 0.3.

Added the vlShow helper to allow Vega-Lite visualizations to be viewed directly in Jupyter lab (rather than Jupyter notebook).

Try it out in Tweag’s jupyterWith environment.

The only change is to the cabal file, where cabal-version: >=1.10 has been changed to cabal-version: 1.18. I honestly don’t know what the minimum-supported version actually is (the version bump is to match that used by hvega.

Updated the upper bounds of aeson to really allow v1.4. This was not released on Hackage.

The source code has been moved to the src sub-directory to match the layout used by hvega.

Several incorrect links in the cabal file have been fixed (as my GitHub user name is not actually githubuser).

The cabal package now includes stack.yaml and default.nix (although the latter is not guaranteed to be correct), as well as a change log.

Since ihaskell is now in Stackage, the LTS version has been updated to reflect this (to LTS 11.19), and the extra dependency removed.

This is the initial version of ihaskell-hvega, and is released with hvega version