rebuildOpenAcc
    :: SyntacticAcc f
    => (forall t'. Arrays t' => Idx aenv t' -> f OpenAcc aenv' t')
    -> OpenAcc aenv  t
    -> OpenAcc aenv' t
rebuildOpenAcc v (OpenAcc acc) = OpenAcc (rebuildA rebuildOpenAcc v acc)
rebuildOpenAcc
    :: SyntacticAcc f
    => (forall t'. Arrays t' => Idx aenv t' -> f OpenAcc aenv' t')
    -> OpenAcc aenv  t
    -> OpenAcc aenv' t
rebuildOpenAcc v (OpenAcc acc) = OpenAcc (rebuildA rebuildOpenAcc v acc)
rebuildOpenAcc v (OpenAcc acc) = OpenAcc (rebuildA rebuildOpenAcc v acc)