Type-level integers, booleans, lists using type families