%\item%#<li>#Defineatreeanalogueof[hlist].Thatis,defineaparameterizedtypeofbinarytreeswithdataattheirleaves,anddefineatypefamily[htree]indexedbytrees.Thestructureofan[htree]mirrorsitsindextree,withthetypeofeachdataelement(whichonlyoccuratleaves)determinedbyapplyingatypefunctiontothecorrespondingelementoftheindextree.Defineatypestandingforallpossiblepathsfromtherootofatreetoleavesanduseittoimplementafunction[tget]forextractinganelementofan[htree]bypath.Defineafunction[htmap2]for"mapping over two trees in parallel."Thatis,[htmap2]takesintwo[htree]swiththesameindextree,anditformsanew[htree]withthesameindexbyapplyingabinaryfunctionpointwise.
%\item%#<li>#Defineatreeanalogueof[hlist].Thatis,defineaparameterizedtypeofbinarytreeswithdataattheirleaves,anddefineatypefamily[htree]indexedbytrees.Thestructureofan[htree]mirrorsitsindextree,withthetypeofeachdataelement(whichonlyoccuratleaves)determinedbyapplyingatypefunctiontothecorrespondingelementoftheindextree.Defineatypestandingforallpossiblepathsfromtherootofatreetoleavesanduseittoimplementafunction[tget]forextractinganelementofan[htree]bypath.Defineafunction[htmap2]for%``%#"#mapping over two trees in parallel.#"#%''%Thatis,[htmap2]takesintwo[htree]swiththesameindextree,anditformsanew[htree]withthesameindexbyapplyingabinaryfunctionpointwise.