<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin-top:6.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Courier New";
        mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:6.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
.MsoPapDefault
        {mso-style-type:export-only;
        margin-top:6.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:0cm;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 61.75pt 72.0pt 61.75pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:488332702;
        mso-list-type:hybrid;
        mso-list-template-ids:-968034492 -849315532 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:Consolas;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:673412046;
        mso-list-type:hybrid;
        mso-list-template-ids:-914698630 -849315532 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:Consolas;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l2
        {mso-list-id:1428846266;
        mso-list-type:hybrid;
        mso-list-template-ids:-1825175768 -849315532 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:Consolas;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3
        {mso-list-id:1666787295;
        mso-list-type:hybrid;
        mso-list-template-ids:42650670 -849315532 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l3:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:Consolas;}
@list l3:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l3:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l3:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l3:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l4
        {mso-list-id:1774666293;
        mso-list-type:hybrid;
        mso-list-template-ids:1044410408 -849315532 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l4:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:Consolas;}
@list l4:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l4:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l4:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l4:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l4:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l4:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l4:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l4:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">OK.  Some questions.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo5">
<![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]>Where is a good place to get a conceptual understanding of submodules?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Concerning https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l3 level1 lfo3">
<![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]>Under "Updating an existing source tree clone" you say we have to do "git submodule update --init".  What happens if we forget?  Couldn't sync-all do that?  (Indeed it now emits a message to that effect<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt"><o:p> </o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">bash$ ./sync-all pull --rebase<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">...<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">From http://git.haskell.org/packages/dph<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">   aeef7aa..2984641  master     -> origin/master<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">   962c999..556e09c  ghc-7.8    -> origin/ghc-7.8<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">First, rewinding head to replay your work on top of it...<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Fast-forwarded master to 2984641ae0c4739b168ee1fb956fd54f741f30e7.<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">== running git pull --rebase<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">remote: Counting objects: 581, done.       
<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">remote: Compressing objects: 100% (276/276), done.       
<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">remote: Total 420 (delta 327), reused 189 (delta 142)       
<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Receiving objects: 100% (420/420), 74.21 KiB, done.<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Resolving deltas: 100% (327/327), completed with 108 local objects.<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">From http://git.haskell.org/ghc<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">   df409de..15b1eb7  master     -> origin/master<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">   abb86ad..a617888  ghc-7.8    -> origin/ghc-7.8<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">* [new branch]      wip/T8545-ghc-7.8 -> origin/wip/T8545-ghc-7.8<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">* [new branch]      wip/recurs-compat -> origin/wip/recurs-compat<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">First, rewinding head to replay your work on top of it...<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Add missing kind-check for tcEqType on forall-types<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Don't export isTcReflCo_maybe (unused)<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Comments only<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: For equalities with incompatible kinds, new IrredCan goes in the inert set, not work list<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Debug tracing only<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Flattener preserves synonyms, rewriteEvidence can drop buggy "optimisation"<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Implicit parameters should not be allowed in class and instance declarations<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">Applying: Comments only<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">== <b><span style="color:red">running git submodule update</span></b><o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">== Checking for old haddock repo<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt">== Checking for old binary repo<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo1">
<![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]>Under “Overriding pushurl”, same question. Couldn’t that long “git submodule foreach” command be done by sync-all?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo1">
<![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]>Under “Making changes”, this looks hard to me.  Is “base” a submodule?  Does that mean we have to remember to do some incantations before we modify base?  What if you forget and make the modifications first?  Again, could some
 of this be automated, at least for the common workflow of pull/push?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks for working on this<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Simon<o:p></o:p></p>
<p class="MsoListParagraph"><o:p> </o:p></p>
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo1">
<![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><o:p> </o:p></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">-----Original Message-----</span></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">From: Herbert Valerio Riedel [mailto:hvriedel@gmail.com]</span></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">Sent: 23 March 2014 21:03</span></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">To: Simon Peyton Jones</span></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">Cc: ghc-devs@haskell.org</span></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">Subject: Re: [commit: ghc] master: Convert haddock into a proper</span></p>
<p class="MsoPlainText">| <span lang="EN-US" style="mso-fareast-language:EN-GB">submodule (re #8545) (34b0721)</span></p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| On 2014-03-23 at 19:53:55 +0100, Simon Peyton Jones wrote:</p>
<p class="MsoPlainText">| > Do us naïve users need to change our workflow with these submodule</p>
<p class="MsoPlainText">| > changes?</p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| Probably yes... to some extent at least; that's why only haddock.git has</p>
<p class="MsoPlainText">| been converted for now[1]: to find out empirically what's involved</p>
<p class="MsoPlainText">| before continuing with the submodule-conversion.</p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| I've tried to describe one possible workflow (for if you need to publish</p>
<p class="MsoPlainText">| a modification to haddock.git) at</p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| <a href="https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules#MakingchangestoGHCsubmodules">
<span style="color:windowtext;text-decoration:none">https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules#</span></a></p>
<p class="MsoPlainText"><a href="https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules#MakingchangestoGHCsubmodules"><span style="color:windowtext;text-decoration:none">| MakingchangestoGHCsubmodules</span></a></p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| I hope it makes a bit of sense :-)</p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">| IMO, it's quite useful to familiarize oneself with the 'git submodule'</p>
<p class="MsoPlainText">| family of commands, and especially 'git submodule' and 'git submodule</p>
<p class="MsoPlainText">| summary', as those two introspection commands allow one to get a better</p>
<p class="MsoPlainText">| picture in which state the currently cloned GHC working tree's</p>
<p class="MsoPlainText">| submodules are.</p>
<p class="MsoPlainText">| </p>
<p class="MsoPlainText">|  [1]: OTOH, haddock.git is not the first/only proper Git submodule we</p>
<p class="MsoPlainText">|       have so far; so, in some way this isn't much of a change...</p>
</div>
</body>
</html>