copyOut :: CPUArray e -> GPUArray e -> Coord ()
copyOut cpuArr gpuArr = 
  do    
    let gpuV = (CVar (gpuArrayName gpuArr) (gpuArrayType gpuArr))
        cpuV = (CVar (cpuArrayName cpuArr) (cpuArrayType cpuArr)) 
        code = MemCpy cpuV gpuV (cpuArraySize cpuArr)
    tell code               
copyOut :: CPUArray e -> GPUArray e -> Coord ()
copyOut cpuArr gpuArr = 
  do    
    let gpuV = (CVar (gpuArrayName gpuArr) (gpuArrayType gpuArr))
        cpuV = (CVar (cpuArrayName cpuArr) (cpuArrayType cpuArr)) 
        code = MemCpy cpuV gpuV (cpuArraySize cpuArr)
    tell code               
copyOut cpuArr gpuArr = 
  do    
    let gpuV = (CVar (gpuArrayName gpuArr) (gpuArrayType gpuArr))
        cpuV = (CVar (cpuArrayName cpuArr) (cpuArrayType cpuArr)) 
        code = MemCpy cpuV gpuV (cpuArraySize cpuArr)
    tell code               