Functional Geekery Episode 84 – Niki Vazou

In this episode I talk with Niki Vazou. We talk about her introduction to Haskell, Ph.D. and graduate school overview, and all things Liquid Haskell.

Our Guest, Niki Vazou

@nikivazou on Twitter
Liquid Haskell website


Kats Conf 2 will be taking place in Dublin, Ireland on the 18th of February. Visit to register and for more information.

ClojureD will be taking place on the 25th of February, 2017, in Berlin, Germany. Visit to get tickets and keep updated as more information becomes available.

BOB Konf is taking place the 24th of February 2017 in Berlin, Germany. Visit for more information about the conference.

ElixirDaze is coming up on March 2nd and 3rd. With keynotes by Prag Dave Thomas and Saša Jurić, make sure to visit for more information and to register.

Destination Code, a new unconference starting in Utah, is having its inaugural event March 27-30th, 2017. Visit to find out more.

Erlang & Elixir Factory 2017 is on the 23rd and 24th of March. Visit for more information.

The O’Reilly Software Architecture Conference will be taking place April 2-5, 2017 in New York. Visit to register and find out more, and use code USRG for 20% off most passes.

flatMap(Oslo) is a FP-conference with focus on Scala and the JVM, taking place on May 2nd and 3rd in Oslo, Norway. Please go to to learn more.

ElixirConf EU will be taking place on May 4th and 5th with tutorials on May 3rd. For more information visit:

OSCON will be taking place May 8-11 in Austin, TX. For more information and to register visit:, and use code USRG for 20% off most passes.

Elm Europe will be taking place June 8th and 9th in Paris, France. Visit for more information and to register.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit for more information and to keep updated.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics [@5:49]

About Niki
Liquid Haskell
Simon Peyton Jones on Episode 11 mentioning Liquid Haskell
Niki’s Thesis
Niki’s introduction to Haskell
Liquid Types paper
Liquid Types for OCaml
What made Haskell click for Niki
Coming in and understanding Types in Haskell
Monads and `do` notation
How Niki was introduced to working on Liquid Types in Haskell
Overview of how graduate school projects generally work
Overview of Liquid Haskell
Refinement types
SMT Solver
“Liquid Haskell is basically Haskell […] extended with special comments in which the user can give their Refinement Type specifications”
Difference between Dependent Types, Refinement Types, and Liquid Types
Decidable Theory
Specifying specifications to help make sure the SMT solver has enough information to determine code is `safe`
Gabriel Gonzalez – Compile-time memory safety using Liquid Haskell
Gradual Typing
Running Liquid Haskell at the module level
Liquid Haskell `assume` keyword
Interacting with code that has yet to be annotated with Liquid Haskell
Working on specifications for recursive functions
“You can treat Liquid Haskell as a theorem prover”
Ability to start using Liquid Haskell from the beginning
The feedback cycle between the research and industry in the Haskell community
Where to find out more about Liquid Haskell
Liquid Haskell website
Liquid Haskell blog
Liquid Haskell About page
Try Liquid Haskell online
Liquid Haskell tutorial
Liquid Haskell Github repo
Liquid Haskell mailing list
Niki at Lambda Days
Niki keynoting at Typelevel Summit
Niki at Programming Language Design and Implementation 2017

As always, a giant Thank You goes to David Belcher for the logo design.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.