Yes, it's the classic diamond dependency graph.
A
/ \
B C
\ /
D
A = Trader, B = ProfitCalculator, C = Persistence, D = MarketModel.
It is not that I *want* Trader (A) to depend on two different
versions of MarketModel (D), that is just a consequence. I don't
have a choice.
What I want is for the ProfitCalculator (B) and Persistence (C) to
always build. And if an update changes the MarketModel (D) from
underneath them, they might break. So, I want them to each lock-in a
specific version. In effect, I am forcing the graph above to turn
into something like.
A
/ \
B C
/ \
D D'
I may not write any code that uses the MarketModel (D) directly on
the Trader (A).
I do understand that there are at least 1 point to keep in mind:
types defined in D will be different from those in D' (typeclasses
will be defined twice)
But the benefit of *not* having to always keep everything building
on the latest version every time I update the MarketModel (D) is
huge for me!
Cheers,
Dimitri
Em 10/09/15 06:50, timmy tofu escreveu:
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe