Who we are

Typeclass Consulting was born out of experience. Our foundersJulie Moronuki and Chris Martin

have seen firsthand the struggles people have learning Haskell and functional programming, all the way from learning it as a curiosity to convincing their teams that Haskell has something to offer in production to deploying services.

We’ve taught FP in person, in settings both casual and intense. We write blog post tutorials. We answer questions online. We’re writing a book.The Joy of Haskell

And in the process of teaching, we’ve learned. Now we’re applying what we’ve learned to a new course for beginner and intermediate Haskell, functional programming, and fundamental programming and math concepts.

Why we’re here

Haskell really is different from what most programmers are accustomed to, and it relies on math concepts that are unfamiliar to most people.

This presents a great deal of novelty to the Haskell learner. It’s tempting as a teacher to confront the learner with too much of that novelty at once.

You think you can rely on programmers’ previous experience with lists, for example, a familiar data structure. However, lists in Haskell are novel in some important ways – the possibility of infinities is no small matter, and lists and the standard library’s list functions force you to confront higher-order recursive functions and nonstrict evaluation, and before you know it you’re throwing around terms like “weak head normal form.”

This doesn’t mean we need to introduce new concepts slowly. For the most part, it doesn’t even dictate a particular order in which such concepts must be grappled with.

But it does mean we will introduce concepts deliberately.

For example, we came to recognize that the problems of teaching Monad aren’t about Monad per se — the difficulties there lie ultimately in shallow understanding of the typeclass system and the notion of a functor. Your first introduction to typeclasses and functors should not be while you’re first encountering Monad.

Welcome to Type Classes, our subscription programming lessons.

What you can expect as a subscriber:

  • Videos that are short and focused, in the interest of avoiding introducing too many new things at once (and because neither of us likes watching long videos).
  • Blocks of videos like chapters of a book that form coherent courses and mini-courses.
  • As much as possible, units will not rely on each other so that the learner may choose a course through Haskell.

We believe that it’s important to approach Haskell from different perspectives. In addition to the structured courses, therefore, we will also provide a range of materials to supplement the courses:

  • Videos and articles aimed at programmers coming from other languages that show direct comparisons between X in Python, Java, or other languages and how to represent that in Haskell.
  • Longer, project-oriented supplementary videos for fun, encouragement, and practice.
  • Programming principles and mathematical concepts.
  • Other functional languages and tools, especially Nix and NixOS.

If you are interested in having us come teach your team, please send a message to hello@typeclasses.com.

© 2018 Typeclass Consulting, LLC