code: def unique(env, exec_policy, first, last, binary_pred=None):
      """Removes all but the first element of the group."""
      _assert_exec_policy_type(exec_policy)
      _assert_pointer_type(first)
      _assert_same_type(first, last)
      if binary_pred is not None:
          raise NotImplementedError(
              "binary_pred option is not supported"
          )
      args = [exec_policy, first, last]
      params = ", ".join([a.code for a in args])
      return _Data(f"thrust::unique({params})", first.ctype)
  
imports: from cupyx.jit import _internal_types
  from cupyx.jit import _cuda_types
  from cupyx.jit._internal_types import Data
label_desc: Use image node_id 50 for calling a global function with example usage: unique(env, exec_policy, first, last, binary_pred) and returns: _Data