From 2601a436b3a52f52cec08599041b665b9887baa2 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Fri, 8 May 2015 13:56:21 -0700 Subject: [PATCH] Backpack docs: AvailInfo plan, and why selectors are hard. Signed-off-by: Edward Z. Yang --- docs/backpack/algorithm.pdf | Bin 245874 -> 257231 bytes docs/backpack/algorithm.tex | 123 ++++++++++++++++++++++++++++++++---- 2 files changed, 109 insertions(+), 14 deletions(-) diff --git a/docs/backpack/algorithm.pdf b/docs/backpack/algorithm.pdf index 2ac126de01faa9cf5c9d8208f502bfe0b4214822..8207286962cf44118c5f0df4f620ec253c31934a 100644 GIT binary patch delta 65041 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 Vhm9==0)t73!9d*Hsyb?*e*rCd$ie^s diff --git a/docs/backpack/algorithm.tex b/docs/backpack/algorithm.tex index 8cc8cce3fd..7674050431 100644 --- a/docs/backpack/algorithm.tex +++ b/docs/backpack/algorithm.tex @@ -458,7 +458,7 @@ proceeds as follows: if there is a duplicate that doesn't have the same identity. \end{enumerate} % -To merge two sets of names, take each pair of names with matching \verb|OccName|s $n$ and $m$. +To merge two sets of names, union the two sets, handling each pair of names with matching \verb|OccName|s $n$ and $m$ as follows: \begin{enumerate} \item If both are from holes, pick a canonical representative $m$ and substitute $n$ with $m$. @@ -750,9 +750,35 @@ key from the identifiers. Previously, we stated that we simply merged $Name$s based on their $OccName$s. We now must consider what it means to merge $AvailInfo$s. -\subsection{Algorithim} - -\Red{to write up} +\subsection{Algorithm} + +Our merging algorithm takes two sets of $AvailInfo$s and merges them +into one set. In the degenerate case where every $AvailInfo$ is a +$Name$, this algorithm operates the same as the original algorithm. +Merging proceeds in two steps: unification and then simple union. + +Unification proceeds as follows: for each pair of $Name$s with +matching $OccName$s, unify the names. For each pair of $Name\, \verb|{|\, +Name_0\verb|,|\, \ldots\verb|,|\, Name_n\, \verb|}|$, where there +exists some pair of child names with matching $OccName$s, unify the +parent $Name$s. (A single $AvailInfo$ may participate in multiple such +pairs.) A simple identifier and a type constructor $AvailInfo$ with +overlapping in-scope names fails to unify. After unification, +the simple union combines entries with matching \verb|availName|s (parent +name in the case of a type constructor), recursively unioning the child +names of type constructor $AvailInfo$s. + +Unification of $Name$s results in a substitution, and a $Name$ substitution +on $AvailInfo$ is a little unconventional. Specifically, substitution on $Name\, \verb|{|\, +Name_0\verb|,|\, \ldots\verb|,|\, Name_n\, \verb|}|$ proceeds specially: +a substitution from $Name$ to $Name'$ induces a substitution from +$Module$ to $Module'$ (as the $OccName$s of the $Name$s are guaranteed +to be equal), so for each child $Name_i$, perform the $Module$ +substitution. So for example, the substitution \verb|HOLE:A.T| to \verb|THIS:A.T| +takes the $AvailInfo$ \verb|HOLE:A.T { HOLE:A.B, HOLE:A.foo }| to +\verb|THIS:A.T { THIS:A.B, THIS:A.foo }|. In particular, substitution +on children $Name$s is \emph{only} carried out by substituting on the outer name; +we will never directly substitute children. \subsection{Examples} @@ -786,7 +812,9 @@ The answer is no! Consider these implementations: Here, \verb|module A1| implements \verb|signature A1|, \verb|module A2| implements \verb|signature A2|, and \verb|module A| implements \verb|signature A1| and \verb|signature A2| individually -and should certainly implement their merge. +and should certainly implement their merge. This is why we cannot simply +merge type constructors based on the $OccName$ of their top-level type; +merging only occurs between in-scope identifiers. \paragraph{Does merging a selector merge the type constructor?} @@ -803,9 +831,8 @@ and should certainly implement their merge. % Does the last signature, which is written in the style of a sharing constraint on \verb|foo|, also cause \verb|bar| and the type and constructor \verb|A| to be unified? -It doesn't seem to be too harmful if we don't unify the rest, and arranging -for the other children to be unified introduces a bit of complexity, so -for now we say no. +Because a merge of a child name results in a substitution on the parent name, +the answer is yes. \paragraph{Incomplete data declarations} @@ -834,7 +861,7 @@ equivalent to the shapes for these which should merge: data A = A { foo :: Int, bar :: Bool } \end{verbatim} -\paragraph{Record selectors and functions} +\subsection{Subtyping record selectors as functions} \begin{verbatim} signature H(foo) where @@ -848,22 +875,90 @@ equivalent to the shapes for these which should merge: Does \verb|M| successfully fill \verb|H|? If so, it means that anywhere a signature requests a function \verb|foo|, we can instead validly provide a record selector. This capability seems quite attractive -but actually it is quite complicated! We'll discuss this in the next -section. +but actually it is quite complicated, because we can no longer assume +that every child name is associated with a parent name. As a workaround, \verb|H| can equivalently be written as: \begin{verbatim} - module H(foo) where + signature H(foo) where data A = A { foo :: Int, bar :: Bool } \end{verbatim} % This is suboptimal, however, as the otherwise irrelevant \verb|bar| must be mentioned in the definition. -\subsection{Subtyping record selectors as functions} +So what if we actually want to write the original signature \verb|H|? +The technical difficulty is that we now need to unify a plain identifier +$AvailInfo$ (from the signature) with a type constructor $AvailInfo$ +(from a module.) It is not clear what this should mean. +Consider this situation: + +\begin{verbatim} + package p where + signature H(A, foo, bar) where + data A + foo :: A -> Int + bar :: A -> Bool + module X(A, foo) where + import H + package q where + include p + signature H(bar) where + data A = A { foo :: Int, bar :: Bool } + module Y where + import X(A(..)) -- ??? +\end{verbatim} + +Should the wildcard import on \verb|X| be allowed? Probably not? +How about this situation: + +\begin{verbatim} + package p where + -- define without record selectors + signature X1(A, foo) where + data A + foo :: A -> Int + module M1(A, foo) where + import X1 + + package q where + -- define with record selectors (X1s unify) + signature X1(A(..)) where + data A = A { foo :: Int, bar :: Bool } + signature X2(A(..)) where + data A = A { foo :: Int, bar :: Bool } + + -- export some record selectors + signature Y1(bar) where + import X1 + signature Y2(bar) where + import X2 + + package r where + include p + include q + + -- sharing constraint + signature Y2(bar) where + import Y1(bar) + + -- the payload + module Test where + import M1(foo) + import X2(foo) + ... foo ... -- conflict? +\end{verbatim} -\Red{to write} +Without the sharing constraint, the \verb|foo|s from \verb|M1| and \verb|X2| +should conflict. With it, however, we should conclude that the \verb|foo|s +are the same, even though the \verb|foo| from \verb|M1| is \emph{not} +considered a child of \verb|A|, and even though in the sharing constraint +we \emph{only} unified \verb|bar| (and its parent \verb|A|). To know that +\verb|foo| from \verb|M1| should also be unified, we have to know a bit +more about \verb|A| when the sharing constraint performs unification; +however, the $AvailInfo$ will only tell us about what is in-scope, which +is \emph{not} enough information. %\newpage -- GitLab