diff --git a/lenses/deflenses.rkt b/lenses/deflenses.rkt index fc111fe..989206e 100644 --- a/lenses/deflenses.rkt +++ b/lenses/deflenses.rkt @@ -1,7 +1,7 @@ #lang racket (require scribble/manual - "main.rkt") + (for-label lenses)) (provide deflens deflenses) diff --git a/lenses/info.rkt b/lenses/info.rkt index ed491f8..18f7adf 100644 --- a/lenses/info.rkt +++ b/lenses/info.rkt @@ -1,4 +1,4 @@ #lang info (define name "lenses") -(define scribblings '(("main.scrbl" () () "lenses"))) +(define scribblings '(("main.scrbl" () (library) "lenses"))) diff --git a/lenses/main.scrbl b/lenses/main.scrbl index 8f12a90..66c3bdf 100644 --- a/lenses/main.scrbl +++ b/lenses/main.scrbl @@ -15,5 +15,6 @@ source code: @url["https://github.com/jackfirth/lenses"] @include-section["core/main.scrbl"] @include-section["list/main.scrbl"] +@include-section["struct-lens.scrbl"] @include-section["syntax.scrbl"] @include-section["applicable.scrbl"] diff --git a/lenses/struct-lens.scrbl b/lenses/struct-lens.scrbl new file mode 100644 index 0000000..fff299d --- /dev/null +++ b/lenses/struct-lens.scrbl @@ -0,0 +1,24 @@ +#lang scribble/manual + +@(require scribble/eval + "lenses-examples.rkt" + (for-label lenses + lenses/struct-lens + racket/base + racket/contract)) + + +@title{Struct lenses} + +@defmodule[lenses/struct-lens] + +@defform[(struct-lens struct-id field-id)]{ + Returns a lens for viewing the @racket[field-id] field of + a @racket[struct-id] instance. + @lenses-examples[ + (require lenses/struct-lens) + (struct foo (a b c) #:transparent) + (lens-view (struct-lens foo a) (foo 1 2 3)) + (lens-set (struct-lens foo a) (foo 1 2 3) 100) +]} +