[Haskell-cafe] Non-atomic "atoms" for type-level programming