Hasty Briefsbeta

Comparing xeus-Haskell and ihaskell kernels

15 days ago
  • #Haskell
  • #Jupyter
  • #Kernels
  • Two primary ways to run Haskell in Jupyter: IHaskell and xeus-haskell.
  • IHaskell is a monolithic kernel that speaks the Jupyter protocol and drives GHC directly.
  • xeus-haskell delegates protocol handling to Xeus (C++) and focuses on connecting to a Haskell interpreter (MicroHs).
  • Jupyter communicates with kernels via five channels: Shell, IOPub, Stdin, Control, and Heartbeat.
  • IHaskell uses the GHC API and ZeroMQ bindings, supporting the full GHC ecosystem but is sensitive to GHC versions.
  • xeus-haskell uses MicroHs, which has a smaller runtime footprint but limited library compatibility.
  • xeus-haskell is easier to install and can run in the browser via WebAssembly.
  • IHaskell is better for server-side notebooks and heavy workloads, while xeus-haskell is suited for lightweight, client-side execution.
  • Both kernels have distinct use cases: IHaskell for data science, xeus-haskell for interactive documentation and demos.