permute :: (Exp Word32 -> Exp Word32) -> GPUArray e -> Coord (GPUArray e) 
permute = undefined
permute :: (Exp Word32 -> Exp Word32) -> GPUArray e -> Coord (GPUArray e)
permute = undefined
permute = undefined