Thanks for reply, mr. van Groningen!

i.e. every identifier starting with ! or with :: (excluding :::) considered 
incorrect.

Is this intended behavior?

Yes, except for ::A = !::

But isn't it more "logical" (and easy to use) to allow any funny ids as 
type/constructor names except :: and ! alone,
separating strictness and uniqueness annotators by mandatory space?

In other words, lexical structure will be sequence of words, each is an 
ordinary identifier, funny identifier, literal,
parenthesis and brackets ([| |] and {! !} etc will be regarded as brackets too),
standalone chars (,) (wich is not allowed to be a part of funny id).
Some of funny ids are reserved (::, !, \, *, etc), others are ok to use as 
type/constructor name.

so,
f ::!Int -> Int
f ::.Int -> Int
f ::*Int -> Int

will be properly written as
f :: ! Int -> Int
f :: . Int -> Int
f :: * Int -> Int

with best regards,
Vag.
_______________________________________________
clean-list mailing list
[email protected]
http://mailman.science.ru.nl/mailman/listinfo/clean-list

Reply via email to