The ZFS package

[ Tags: library, monads, public-domain ] [ Propose Tags ]

A implementation of a zipper filesystem using delimited continuations.

Zipper-based File/Operating system with threading and exceptions all realized via delimited continuations. There are no unsafe operations, no GHC (let alone) Unix threads, no concurrency problems. Our threads can't even do IO and can't mutate any global state - and the type system sees to it.

To run, type main' fs1 on ghci after loading ZFS.hs. Then from some other terminal, type 'telnet localhost 1503'.

[Skip to Readme]


Versions 0.0, 0.0.1, 0.0.2
Dependencies base (>3 && <5), CC-delcont (<=0.2), containers, mtl, network, unix [details]
License PublicDomain
Author Amr Sabry, R. Kent Dybvig, Simon L. Peyton Jones, Oleg Kiselyov
Maintainer Julian K. Arni <>
Category Monads
Home page
Bug tracker
Source repository head: git clone git://
Uploaded Tue Nov 25 18:44:11 UTC 2014 by jkarni
Distributions NixOS:0.0.2
Downloads 896 total (13 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for ZFS-0.0.2

[back to package description]
This is a Cabalized and somewhat modernized/cleaned-up package containing Oleg's famous ZipperFS. For details, see <>.

A demonstration of how to use it is contained in zfs.pdf. The short of the matter is:

       "Load ZFS.hs into GHCi
       Start up the system: main at the GHCi prompt
       From some terminal: 'telnet localhost 1503'"

And then you can play around with it.

This package also comes with an old implementation of delimited continuations. Ideally it would be updated to use the maintained package, CC-Delcont <>. But I don't know how.