[Haskell-cafe] Serialize to Haskell

Corentin Dupont corentin.dupont at gmail.com
Sat Aug 8 15:33:35 UTC 2015


This seems to be what I need! I'll give a look.

On Sat, Aug 8, 2015 at 1:24 AM, Matthew Pickering <
matthewtpickering at gmail.com> wrote:

> Alan Zimmerman and myself have written a library which aims to make
> these sorts of transformations easy. We are still in the early stages
> but depending on what exactly you want to do then it might be suitable
> for your purposes. Looking now on hackage the documentation isn't very
> good so it might not be obvious how you're meant to use it.
>
> https://hackage.haskell.org/package/ghc-exactprint
>
> The basic idea is, use one of the parsers from the Parsers module, do
> a (generic) transformation on the resulting ast, then call
> `exactPrintWithAnns` on the AST and the resulting annotations. For
> simple transformations (moving, deletion, renaming) it is sufficient
> to not modify the annotations. When doing insertions/replacements, you
> will probably have to modify the annotations in some way to get a
> sensible output.
>
>
> https://hackage.haskell.org/package/ghc-exactprint-0.3.1/docs/Language-Haskell-GHC-ExactPrint-Parsers.html
>
> I don't think I'm quite sure what exactly you want, if you can give a
> specific use case then it will help me give a better answer. We also
> hang around in #haskell-refactorer if it is transforming source files
> that you are interested in.
>
> Here is an example of how to use the library to insert a type
> signature for example.
>
>
> https://github.com/alanz/ghc-exactprint/blob/master/examples/InsertSignature.hs
>
> Happy to answer any more questions..
>
> Matt
>
> On Sat, Aug 8, 2015 at 1:04 AM, Corentin Dupont
> <corentin.dupont at gmail.com> wrote:
> > Hi Matthew,
> > yes that's exactly that.
> > I want to do exactly what you would do with a JSON file (read, write),
> but
> > with a data format that would be valid Haskell (instead of valid
> > javascript).
> >
> >
> > On Fri, Aug 7, 2015 at 8:06 PM, Matthew Pickering
> > <matthewtpickering at gmail.com> wrote:
> >>
> >> Hi Corentin,
> >>
> >> I don't quite understand your question please can you explain a bit
> >> more.  Do you want to read a valid haskell source file, perform some
> >> changes to the file and then print out a valid source file?
> >>
> >> I am a bit confused about the bit about turing-completeness.
> >>
> >> Matt
> >>
> >> On Fri, Aug 7, 2015 at 7:55 PM, Corentin Dupont
> >> <corentin.dupont at gmail.com> wrote:
> >> > Hello!
> >> > I'm wondering if it's possible to serialize some data to a format that
> >> > is
> >> > valid Haskell.
> >> > In practice I would read a file like this:
> >> >
> >> > module Foo where
> >> >
> >> >   myData :: MyData
> >> >   myData = MyData {name = "foo",
> >> >                    descr = "test"
> >> >                    ...
> >> >                    }
> >> >
> >> > Reading this into a program is easily feasible with Hint, for example.
> >> > Then
> >> > the program would modify some data and serialize it back to:
> >> >
> >> > module Foo where
> >> >
> >> >   myData :: MyData
> >> >   myData = MyData {name = "bar",
> >> >                    descr = "test2"
> >> >                    ...
> >> >                    }
> >> >
> >> > In practice I think that the format should be a subset of Haskell that
> >> > is
> >> > not Turing-complete.
> >> > A bit like JSON, which is a subset of Javascript but not Turing
> >> > complete.
> >> > Is it possible?
> >> >
> >> > Thanks,
> >> > Corentin
> >> >
> >> > _______________________________________________
> >> > Haskell-Cafe mailing list
> >> > Haskell-Cafe at haskell.org
> >> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150808/d8670f04/attachment.html>


More information about the Haskell-Cafe mailing list