printKernel :: Kernel -> String
printKernel (Kernel name args body) =
  "__kernel void " ++ name
  ++ "(" ++ intercalate ", " (map printDecl args) ++ ") {\n"
  ++ indent 2 (printBlock body)
  ++ "}"
printKernel :: Kernel -> String
printKernel (Kernel name args body) =
  "__kernel void " ++ name
  ++ "(" ++ intercalate ", " (map printDecl args) ++ ") {\n"
  ++ indent 2 (printBlock body)
  ++ "}"
printKernel (Kernel name args body) =
  "__kernel void " ++ name
  ++ "(" ++ intercalate ", " (map printDecl args) ++ ") {\n"
  ++ indent 2 (printBlock body)
  ++ "}"