
Tillmann Rendel
Hi Claus,
thanks for your elaborations. I'm still not convinced that a common name (e.g. TT :. Tr :. Tu :. Te) is a better interface than a common import (e.g. TypeLevel.Bool.True). In both cases, the authors of all modules have to actively collaborate, either to define common names, or to define common imports.
But I begin to see how type-level atoms could help to, e.g., implement more advanced module system as type-level embedded DSLs in Haskell.
Standard ML's answer to that kind of issue is type sharing.
Does type sharing help with making modules retroactively compatible?
map (\i -> rot13 i) import Foo -- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited.