Skip to content
This repository has been archived by the owner on Oct 6, 2020. It is now read-only.

guildhall/guile-contract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a draft of the ported code for guile-2.0.6
and later

guile-contract has guile-syntax-parse as a dependency

for documentation refer to racket's documentation at
  http://docs.racket-lang.org/reference/contracts.html

There will be differences. To note:

* basic atomic variables and function contracts is working mostly as
in the racket codebase. 

* Structs and arrays and boxes is currently not ported in any way.

* contract-out does only support renaming and simple attaching of contract
  e.g. no struct an exists are available also please note

** use (contract-out-spec name arg ...) as with a simplified contract-out
   this form is evaluated and all contracts is evaluated as well

** in the end of the program when all symbols have been maped issue 
   (contract-out name)
   typically at the end of the module, and the system will make the interface 
   out in such a way that calling the functions from the outside, the contracts
   will be used. But the functions inside the module will use the fast and 
   plain form. E.g. we will move the variable to a new symbol and then add 
   another binding in it's place that attaches the contract.

** in with-contract, we cannot define contracted variables, use set! instead

About

No description, website, or topics provided.

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.TXT
Unknown
COPYING.LIB

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages