[Haskell-cafe] Concept for "equal but unknown"
Olaf Klinke
olf at aatal-apotheke.de
Fri Oct 2 15:36:50 UTC 2015
To me this sounds like the Reader monad: You have a value that depends on something that is yet to be decided upon.
data SomeCargo = SomeCargo {
decide_attribute1 :: ContainerID -> Attr1
decide_attribute2 :: ContainerID -> Attr2
...
}
data ConcreteCargo = ConcreteCargo {
attribute1 :: Attr1
attribute2 :: Attr2
}
withID :: SomeCargo -> ContainerID -> ConcreteCargo
If the type ContainerID is searchable [1] then you can have an Eq instance even for the SomeCargo type. That is, two containers are equal if whenever the same ID gets assigned, they have the same properties. The technical term would be "indistinguishable in all contexts".
-- Olaf
[1] http://math.andrej.com/2008/11/21/a-haskell-monad-for-infinite-search-in-finite-time/
More information about the Haskell-Cafe
mailing list