I can't recall if I sent this already.

I made a bad syntactic decision to move constraints to the right. This works
okay for function definitions:

  def f(x:'a)
    where Eq('a)
  {
     ...
  }

but not so well for other cases:

  def x:'a where IntLit('a) = 5

so I'm moving it back to the left. For *types* we will certainly adopt the
=> convention:

   _<_ : Ord('a) => fn ('a, 'a) -> bool

for definitions, there are two options:

  Option 1: Before the def, introduced by a keyword:

  where Eq('a)
  def f(x:'a) {
    ...
  }

  Option 2: After the def, using =>:

  def Eq('a) => f(x:'a) {
  }

I personally prefer the first option, because as constraint lists grow long
the second syntax becomes hard to follow.

So which option do people want?

shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to