No description, website, or topics provided.
Clone or download
Stefan Israelsson Tampe
Stefan Israelsson Tampe added better compat/racket/for.scm
Latest commit 6489e8e Apr 13, 2012
Type Name Latest commit message Commit time
Failed to load latest commit information.
compat/racket added better compat/racket/for.scm Apr 13, 2012
ice-9 updated README Mar 18, 2012
COPYING.LIB initial commit Feb 25, 2012
LICENSE.TXT a reasonable working contract-out added and README, LICENCE.TXT updated Mar 15, 2012
README updated README Mar 18, 2012


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

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