Skip to content

Instantly share code, notes, and snippets.

@marick
Last active September 17, 2017 22:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marick/2a971349cd65e1a4dcf782e5529c2016 to your computer and use it in GitHub Desktop.
Save marick/2a971349cd65e1a4dcf782e5529c2016 to your computer and use it in GitHub Desktop.

Types and tests in functional programming - a workshop

Edinburgh Scotland, [[[date]]]

An interesting thing about types and tests is that they have a long history of programmers embracing them reluctantly (at best). But in this century they've both become respectable -- even trendy in some circles. One difference from the old days is that proponents of both emphasize a claim that their tool is useful in design, not just in checking implementations.

This workshop assumes that claim is true enough. That is, despite all the other virtues of types and tests, we believe their value for design is worth exploring and amplifying.

However: types and tests come from radically different traditions. To a considerable extent, their communities don't talk to each other. That's a problem, because it makes it easy to see types and tests as antagonistic approaches to design. Positions could harden -- perhaps have hardened -- before there's been serious work to discover and articulate how they could be complementary approaches.

The workshop aims to do some of that serious work. We seek participation from three (overlapping) groups of people:

  1. Those who rely heavily on types in their design (but are interested in how other people design).
  2. Those experienced in test-driven design (but are interested in how other people design).
  3. Those experienced in the use of property-based tests for exploring the design space (but are also interested in how other people design).

The parenthetical remarks are important in a time that encourages and rewards zealotry. This is not a forum for advocates to tell others how and why they're wrong. Find your own workshop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment