Monad classes, using type families