we can now do this at typelevel! yey!