Skip to content
/ Records Public

Dependently Typed Extensible Records with Prototypal Inheritance

Notifications You must be signed in to change notification settings

jmars/Records

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Dependently Typed Extensible Records with Prototypal Inheritance

A 'dynamic' record system with strong correctness guarantees.

Relevant Paper

Create

test : Record {lbl=String} ?testTy
test = [ "foo" := 1
       , "bar" := "a thing"
       , "bleh" := 1.2 ]
testTy = proof search

Add

test2 : ?test2Ty
test2 = ("meh" := 10) :: test
test2Ty = proof search

Remove

test3 : ?test3Ty
test3 = getProof $ "meh" - test
test3Ty = proof search

Update

test4 : ?test4Ty
test4 = getProof $ ("meh" := 11) -: test2
test4Ty = proof search

Inheritance

test5 : ?test5Ty
test5 = test2 ++ test
test5Ty = proof search

Note: Proof search is not required if the record is not at the top scope level, type inference will find the correct type inside functions or closures.

About

Dependently Typed Extensible Records with Prototypal Inheritance

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages