From 7d76d71dc236eb709c63176609a6c54d207c562d Mon Sep 17 00:00:00 2001 From: Jack Firth Date: Wed, 8 Jul 2015 01:25:32 -0700 Subject: [PATCH] Add contracts to core --- lens/base/base.rkt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lens/base/base.rkt b/lens/base/base.rkt index 13b771a..70b3750 100644 --- a/lens/base/base.rkt +++ b/lens/base/base.rkt @@ -6,10 +6,13 @@ (require rackunit)) (provide let-lens - make-lens - focus-lens - use-applicable-lenses! - (rename-out [lens-struct? lens?])) + (contract-out [make-lens (-> (-> any/c any/c) + (-> any/c any/c any/c) + lens?)] + [focus-lens (-> lens? any/c + (values any/c (-> any/c any/c)))] + [use-applicable-lenses! (-> void?)] + [lens? predicate/c])) (define lenses-applicable? (make-parameter #f)) @@ -28,6 +31,7 @@ (require rackunit) (check-exn exn:fail? (thunk (first-lens '(a b c))))) +(define lens? lens-struct?) (define (make-lens getter setter) (lens-struct getter setter))