Hi,

Am Montag, den 25.02.2013, 10:13 +0100 schrieb Simon Hengel:
> On Mon, Feb 25, 2013 at 09:57:04AM +0100, Joachim Breitner wrote:
> > Hi,
> > 
> > Am Montag, den 25.02.2013, 08:06 +0200 schrieb Michael Snoyman:
> > > Quite a while back, Simon Hengel and I put together a proposal[1] for
> > > a new feature in GHC. The basic idea is pretty simple: provide a new
> > > pragma that could be used like so:
> > > 
> > > error :: String -> a
> > > errorLoc :: IO Location -> String -> a
> > > {-# REWRITE_WITH_LOCATION error errorLoc #-}
> > 
> > in light of attempts to split base into a pure part (without IO) and
> > another part, I wonder if the IO wrapping is really necessary.
> > 
> > Can you elaborate the reason why a simple "Location ->" is not enough?
> 
> The IO helps with reasoning.  Without it you could write code that does
> something different depending on the call site.  Here is an example:
> 
> 
>     someBogusThingy :: Int
>     someBogusThingy = ..
> 
>     someBogusThingyLoc :: Location -> Int
>     someBogusThingyLoc loc
>       | (even . getLine) loc = 23
>       | otherwise            = someBogusThingyLoc
> 
>     {-# REWRITE_WITH_LOCATION someBogusThingy someBogusThingyLoc #-}
> 
> Now someBogusThingy behaves different depending on whether the call site
> is on an even or uneven line number.  Admittedly, the example is
> contrived, but I hope it illustrates the issue.

ok, I mentally applied REWRITE_WITH_LOCATION before wondering about
reasoning about the code. But you are right that it would be nice if the
rewrite rule would be valid as well.

I’m not firmly commited either way.

Greetings,
Joachim

-- 
Joachim "nomeata" Breitner
Debian Developer
  nome...@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nome...@joachim-breitner.de | http://people.debian.org/~nomeata

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to