[Haskell-cafe] Continuable and serializable parsers.

Felipe Lessa felipe.lessa at gmail.com
Fri Dec 25 20:31:45 EST 2009

On Fri, Dec 25, 2009 at 05:12:22PM -0500, Antoine Latter wrote:
> In that case, You'll be able to serialize that as long as you can
> serialize (m a).
> I meant higher-order as in function-types. So you wouldn't be able to serialize:
> string :: String -> Parser String
> Unless you had some way to reify the particular function to data.

That's the idea, to create something like

    data MyParser = FunString String
                  | ...

    interpret :: MyParser -> Parser String
    interpret (FunString str) = string str

However you're right in a sense, you can't use this scheme to
serialize any functions taking functions, like

    something :: (a -> Parser a) -> a -> Parser a


    data MyParser = FunSomething (a -> MyParser) a

wouldn't be serializable.  Well, maybe if your parsers were
arrows... :)


More information about the Haskell-Cafe mailing list