From 0c037b6810f25a33030401cd9bc56cf1b9c3e412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Tue, 5 Dec 2017 19:32:05 +0100 Subject: [PATCH] Typos --- scribblings/typed-worklist.scrbl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scribblings/typed-worklist.scrbl b/scribblings/typed-worklist.scrbl index b65d9dc..86f26e3 100644 --- a/scribblings/typed-worklist.scrbl +++ b/scribblings/typed-worklist.scrbl @@ -40,7 +40,7 @@ This package is mainly intended to be used by the The goal of @racketmodname[phc-graph #:indirect] is to implement generalised folds (catamorphisms) over heterogeneous graphs. Heterogeneous graphs can be -conceptualised as a trees where nodes can have different types (e.g. nodes of +conceptualised as trees where nodes can have different types (e.g. nodes of type @racketid[A] have children of type @racketid[B], which have children of type @racketid[C], which have children of type @racketid[A], and each node type can hold different metadata), generalised to allow backward arcs (so that @@ -75,7 +75,7 @@ Typed Racket's variadic polymorphic types, also sometimes mentioned as "polydots" (of the form @racket[(∀ (A B X ...) τ)]) along with intersection types, it is possible to encode the type of @racket[worklist]. -Typed Racket is not (yet?) able to reliably enfoce the fact that two variadic +Typed Racket is not (yet?) able to reliably enforce the fact that two variadic polymorphic type variables must have the same length. The trick is to wrap the @racket[Inᵢ] and @racket[Outᵢ] types with structs @racket[I] and @racket[O], which serve as type-level tags. Then, a single variadic type variable ranges @@ -103,7 +103,7 @@ could still fail to typecheck, but it is a smaller and simpler piece of code). Finally, it is a remarkable feat that Typed Racket is able to express the type of such a function (and is also able to typecheck its implementation!), as -this problem would require at first look some flavor of type-level +this problem would require at a first look some flavor of type-level computation, dependent types or similar advanced typing features. Comparatively, the mechanisms used here (variadic polymorphic variables and intersection types) are refreshingly simple.