let region_assigned = function
    | D.Aloc(_,Path(_,x,offset,_)) -> 
        funvar_path x offset None , M.region_empty ()
    | D.Arange(te,Path(_,x,offset,_),rg) -> 
        funvar_path x offset (Some(te,rg)) , M.region_empty ()
    | D.Aloc(te,Mloc l) -> 
        Z.empty , M.region_assigned(D.Aloc(te,l))
    | D.Arange(te,Mloc l,rg) -> 
        Z.empty , M.region_assigned(D.Arange(te,l,rg))