[Haskell-cafe] Partial type family application

Oleg oleg at okmij.org
Thu Apr 27 10:42:19 UTC 2017

If the goal is to write higher-order type families, we can do that
already -- and were able to do for a long time.

For example, please see
that was written in 2012 for

It shows the type-level function that checks for a membership in a
type-level using the equality function supplied by a user as the first
argument. Incidentally, here is the definition

type instance Member f x NIL = HFalse
type instance Member f x (h :/ t) = 
  ORELSE (Apply f (x,h)) (CLOS AC_Member (f,x,t))

It was written before the modern syntax for type-level lists and

This is an example of the general technique of defunctionalization.

More information about the Haskell-Cafe mailing list