-
Notifications
You must be signed in to change notification settings - Fork 1
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
your type checker seems too young #5
Comments
You mean refinement type? That'll be the greatest high!
Yes, Yes, Yes! Writing down some gossips: Currently I plan to create a type system based on UTT (which has no difference with MLTT IMO -- imagine a Haskell type system with dependent type). With refinement type, we can make a better termination check. b : bla = rua
c : rua = ora
a = rewrite b in rewrite c in Refl Looks so ugly, hugh? In a language with refinement type we can simply val b : x:unit{bla = rua}
val c : x:unit{rua = ora}
a = b; c; ()
(* A simplified version of let () = b in let () = c in () *) Making the code extremely readable! |
Please check the most difficult project I've finished in github:
https://github.com/thautwarm/reFining/blob/master/DotNet/reFining/reFining/infr.fs
I can solve the problem you ask in QQ recently about value restrictions.
The tests indicates something meaningful:
https://github.com/thautwarm/reFining/blob/master/DotNet/reFining/test/Tests.fs
Above project is side-effect free, so I think I might get along with Haskell as well.
May I take part in this project to work with the type checkers?
The text was updated successfully, but these errors were encountered: