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