Skip to content

Instantly share code, notes, and snippets.

@benkolera
Created October 4, 2016 01:26
Show Gist options
  • Save benkolera/a867396b9a499568ead5f020f1b65cf5 to your computer and use it in GitHub Desktop.
Save benkolera/a867396b9a499568ead5f020f1b65cf5 to your computer and use it in GitHub Desktop.
Talk?

Thinking with Types - Ben Kolera

A core restriction of functional programming is that functions can only use their inputs to calculate their output and thus must always return the same output for a given input. This has the lovely effect that we can reason about what a function does purely by the the types of their inputs and outputs and use that knowledge when refactoring and composing functional programs.

The types are our key to reducing the possibilities of inputs and outputs of our functions. As we reduce the possibilities and weaken what our function can actually do, we make our function easier to reasonable about and thus easier to safely compose. In this talk, we will go through the tools that we have in the purescript programming language to make this local reasonability more and more powerful.

  • Product types
  • Sum types
  • Parametricity
  • Parametricity + Typeclasses
  • Extensible Effect Tracking

This should be a beginner level talk that will presume no knowledge of purescript, FP or haskell like syntax.

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