On 7/12/06, Greg Fitzgerald <[EMAIL PROTECTED]> wrote:
I'm trying to translate this HXT code to use the Arrow 'do' syntax:
readWriteDoc :: String -> IOSLA (XIOState s) b Int
readWriteDoc path = readDocument [(a_validate, "0")] path
                  >>> writeDocument [(a_output_encoding, isoLatin1)] "-"
                  >>> getErrStatus

This attempt fails to compile:
readWriteDoc :: String -> IOSLA (XIOState s) b Int
 readWriteDoc = proc path -> do
   doc       <- readDocument [(a_validate, "0")]                   -< path
   result    <- writeDocument [(a_output_encoding, isoLatin1)] "-" -< doc
   getErrStatus -< result

Hi, Greg.

Looks like readWriteDoc is not an arrow but a function from strings to
arrows. So 'path' is just an argument, not arrow input. Maybe this
should work:

readWriteDoc :: String -> IOSLA (XIOState s) b Int
readWriteDoc path = proc input -> do
  doc       <- readDocument [(a_validate, "0")] path -< input
  result    <- writeDocument [(a_output_encoding, isoLatin1)] "-" -< doc
  getErrStatus -< result

--
Tolik
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to