-
Notifications
You must be signed in to change notification settings - Fork 2
The Surface Language #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, I left some minor nitpicking comments but feel free to disregard.
| NPName of { ~pos : Position }, T | ||
| NPSel of { ~pos : Position }, Path ModuleName, T |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI the prefix "NP" originally stood for "Namespace Path", dating back to when modules were briefly called namespaces. Maybe it's time to update it to something more informative, like "MP".
{## Named parameter of the type scheme. ##} | ||
pub data SchemeArg = | ||
{## Type parameter. ##} | ||
| SA_Type of { ~pos : Position }, TName, TVar, KindExpr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, what are the conventions for multicharacter prefixes in constructors? TName
gets TN
with no underscore, this gets SA_
, and there are both variants elsewhere too. I don't really have a preference myself.
end | ||
|
||
{## File. ##} | ||
pub data File = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should a File
have a ~pos
for the purpose of retrieving the filename easily, or is that unlikely to be useful?
This PR introduces definition of the Surface language. REPL related parts are not implemented.
The code uses type synonyms, that are not merged into master branch of DBL, yet.