brendanzab/moniker

Suppport multiple identifier namespaces

brendanzab opened this issue · 0 comments

This would be useful for languages where the are multiple namespaces. Examples would be Rust, Haskell, or Elm, where values and types can share names, but point to different things. Eg:

data Foo a = Foo a Int

Foo points to either:

  • the type constructor Foo :: Type -> Type
  • the value constructor Foo :: forall a . a -> Int -> Foo a

Unbound manages this by adding a phantom type parameter to its Name type. So you could have either Name Type or Name Expr.