[Haskell-beginners] Text.XML.writeFile question
Alan Buxton
alanbuxton at gmail.com
Tue Aug 13 10:06:14 CEST 2013
Thanks David. Spot on.
a
From: Beginners [mailto:beginners-bounces at haskell.org] On Behalf Of David
McBride
Sent: 12 August 2013 21:52
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell
Subject: Re: [Haskell-beginners] Text.XML.writeFile question
When you use overloadedstrings, it will type all literal strings as IsString
a => a as a type. Unfortunately your tsString is not a literal, it is a run
time function that always returns a string and a string is not a filepath.
You should be able to do fmap fromString tsString, provided you import
Data.String.
On Mon, Aug 12, 2013 at 4:35 PM, Alan Buxton <alanbuxton at gmail.com> wrote:
Hi
I am trying to write an XML file where the filename is created based on a
timestamp. Simplified version below. This won't compile - I get this error
in doWrite2
filepathtest.hs|24 col 17 error| Couldn't match expected type
`system-filepath-0.4.7:Filesystem.Path.Internal.FilePath'
|| with actual type `String'
|| In the second argument of `writeFile', namely `t1'
|| In a stmt of a 'do' block: writeFile def t1 doc
|| In the expression:
|| do { t1 <- tsString;
|| writeFile def t1 doc }
Somehow the String "text.xml" in doWrite1 is converted into a FilePath, but
not the String t1 in doWrite2. What am I doing wrong?
{-# LANGUAGE OverloadedStrings #-}
module Filepathtest where
import Text.XML
import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds)
import Data.Time.Clock (getCurrentTime)
import Prelude hiding (writeFile, FilePath)
tsString :: IO String
tsString = do
x <- getCurrentTime
let x' = show $ floor $ utcTimeToPOSIXSeconds x
return x'
doWrite1 :: Document -> IO ()
doWrite1 doc =
writeFile def "test1.xml" doc
doWrite2 :: Document -> IO ()
doWrite2 doc = do
t1 <- tsString
writeFile def t1 doc
_______________________________________________
Beginners mailing list
Beginners at haskell.org
http://www.haskell.org/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20130813/b4dcff90/attachment.htm>
More information about the Beginners
mailing list