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