Skip to content
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

Wanted basic features #2

Open
ice1000 opened this issue Nov 14, 2018 · 22 comments
Open

Wanted basic features #2

ice1000 opened this issue Nov 14, 2018 · 22 comments
Labels

Comments

@ice1000
Copy link
Member

ice1000 commented Nov 14, 2018

No description provided.

@ice1000 ice1000 added the type: discussion Let's talk label Nov 14, 2018
@ice1000 ice1000 changed the title Wanted features Wanted basic features Nov 14, 2018
@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • GADT (Haskell, Agda, Idris) and Generalized Algebraic Codata Type (Agda)
  • Dependent (Co)pattern matching (Agda)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Reflection (Agda, Idris)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Prop, Proof Irrelevance (Agda, Idris, Coq)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Sized Type (?) (Agda)

owo-lang/OwO#5 Redy!

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Termination check, possibly cross function? (Agda, Idris, Coq)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Module System (Agda, OCaml)
    • import
    • open
    • open {{ ... }}
    • parameterization
    • hiding
    • using
    • renaming

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Automatic Generalization (Haskell, Idris, OCaml)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Pattern Matching without K (Agda)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Overloading over lambdas (Agda)

Cubical Type Theories?

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Foreign Function Interface (*)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Instance Arguments (Agda)

I don't want typeclass/type instance as language component.

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Strict evaluation for data, Lazy evaluation for codata? (^)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Global overloading (Idris)
  • Local shadowing (^Agda)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Metavariables (Haskell, Agda, Idris)

@ice1000
Copy link
Member Author

ice1000 commented Nov 14, 2018

  • Universal Polymorphism (Agda, Idris, Coq)

@anqurvanillapy
Copy link
Member

What about n-truncated types like HoTT-Agda's to introduce hProp/hSet, make identity types and homotopy equivalence equivalent, and axiom K a theorem for hSet.

@ice1000
Copy link
Member Author

ice1000 commented Nov 15, 2018

What about n-truncated types like HoTT-Agda's to introduce hProp/hSet, make identity types and homotopy equivalence equivalent, and axiom K a theorem for hSet.

It has already been covered as Prop and Proof Irrelevance

@ice1000
Copy link
Member Author

ice1000 commented Nov 15, 2018

  • Types with boolean refinement (F*), may replace sized type?

@anqurvanillapy
Copy link
Member

It's an urge to give a research about the ability of modeling HoTT by UTT, since the base standard library of OwO should start with things like in HoTT-Agda's n-truncated types, since then we can easily model h-props and h-sets by postulating different axioms, and even forget about UA when modelling all the groupoids.

@anqurvanillapy
Copy link
Member

And I will leave a comment about the design of record-like stuff, since I think Agda's (co-)inductive records are weird to construct...

@ice1000
Copy link
Member Author

ice1000 commented Nov 19, 2018

Yes, forget about record constructors. We'll use copatterns to replace record constructors!

@ice1000
Copy link
Member Author

ice1000 commented Jan 31, 2019

After a little study about cutt, I'd say proof irrelevance is no longer useful when we have path types.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants