Pointless type-level stuff based on shapeless ideas