[Haskell-cafe] Names in a record changes read behavior?

Brandon Allbery allbery.b at gmail.com
Mon Jul 27 21:05:53 UTC 2015


On Mon, Jul 27, 2015 at 5:01 PM, Mike Meyer <mwm at mired.org> wrote:
>
> On Mon, Jul 27, 2015, 15:56 Brandon Allbery <allbery.b at gmail.com> wrote:
>
> On Mon, Jul 27, 2015 at 4:25 PM, Mike Meyer <mwm at mired.org> wrote:=
>
> OK, why won't read accept the same syntax as the REPL? I can see wanting
> Read and Show to be inverses of each other, though I think it's a bit
> misguided. But if we're going to be that strict about them being inverses,
> shouldn't we also insist that the READ eval print loop only accept what
> read will accept?
>
>
> Partly because ReadS isn't a very good parser, partly because of
> compliance with
> https://www.haskell.org/onlinereport/haskell2010/haskellch11.html#x18-18600011.4;
> notably:If the constructor is defined using record syntax, the
> derived Read will parse only the record-syntax form, and furthermore, the
> fields must be given in the same order as the original declaration.
>
> So why does the REPL read not follow those rules? And is there some way to
> use whatever the REPL is using as the read instance in my code?
>
The REPL is ghc itself, not a Read instance. You almost certainly do not
want to have all of ghc linked into your program just to use its parser and
bytecode interpreter as a read alternative --- especially since that would
be an *independent* environment and cannot see any types you defined in
your program unless you also compile your program into that instance of
ghc, at runtime.

-- 
brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150727/df7bc2cb/attachment.html>


More information about the Haskell-Cafe mailing list