Trustworthy Systems

Quantitative information flow with monads in Haskell


Jeremy Gibbons, Annabelle McIver, Carroll Morgan and Tom Schrijvers

    School of Computer Science and Engineering
    Sydney 2052, Australia


Monads are a popular feature of the programming language Haskell because they can model many different notions of computation in a uniform and purely functional way. Our particular interest here is the probability monad, which can be —and has been— used to synthesise models for probabilistic programming.

Quantitative Information Flow, or QIF, arises when security is combined with probability, and concerns the measurement of the amount of information that ‘leaks’ from a probabilistic program’s state to a (usually) hostile observer: that is, not “whether” leaks occur but rather “how much?”

Recently it has been shown that QIF can be seen monadically, a ‘lifting’ of the probability monad from (simply) distributions to distributions of distributions — so called “hyper-distributions”. Haskells’s support for monads therefore suggests a synthesis of an executable model for QIF. Here we provide the first systematic and thorough account of doing that: using distributions of distributions to synthesise a model for Quantitative Information Flow in terms of monads in Haskell.

BibTeX Entry

    author           = {Jeremy Gibbons and Annabelle {McIver} and Carroll Morgan and Tom Schrijvers},
    booktitle        = {Foundations of Probabilistic Programming},
    doi              = {10.1017/9781108770750.013},
    editor           = {Barthe, Gilles and Katoen, Joost-Pieter and Silva, Alexandra},
    month            = nov,
    pages            = {391–448},
    paperurl         = {},
    place            = {Cambridge},
    publisher        = {Cambridge University Press},
    title            = {Quantitative Information Flow with Monads in {Haskell}},
    year             = {2020}