I have reached an impasse in designing a Haskell API for the google's
protocol-buffers data language / format. (
http://code.google.com/apis/protocolbuffers/docs/overview.html )
The messages in protobuf are defined in a namespace that nests in the usual
hierarchical OO style that Java encourages.
To avoid namespace conflicts, I made a hierarchy of modules.
But...this is a legal pair protobuf message definitions:
// Test that mutual recursion works.
message TestMutualRecursionA {
optional TestMutualRecursionB b = 1;
optional int32 content = 2;
}
message TestMutualRecursionB {
optional TestMutualRecursionA a = 1;
optional int32 content = 2;
}
And there is no way ghc can compile these in separate modules.
But the overlap of record accessors names "content" makes defining these
messages in a single module with a common namespace quite verbose.
Any opinions on the least worst way to design this?
--
Chris
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe