úÎÒQ      !"#$%&'()*+,-./0123456789:;<=>? @ A B C D E F G H I J K L M N O P EThe central data type. All data structures must be converted so they  consist of Shell'0s, which split a value into a component at this $ level and the children. Create a Shell with . 5Create a value with a component at the current level  and all the children. !A simple homeomorphic embedding.  O(expensive) Does the dive rule apply. Does the couple rule apply.       Q     RSTU VWXY  !"#$%&'()* !"#$%&'()*Z[\]^ !"#$%&'()*  !!"#$%&'()* +_,-./012`+,-./012+,-./012+,-./0-./012 3456789:;<=>3456789:;<=>abcde 4536789:;<=> 34556789:;<=> ?@ABCD?@ABCD?@ABCD?@@ABCD EFGHIJKEFGHIJKHJIEGFKEGFFGHJIIJK L+Datatype to store a homemorphic embedding. fMAn empty embedding N<Insert a new key (coded as a shell) and an associated value  into an embedding. ODoes any relation xs <| y hold, given y. P  findOne y = listToMaybe . find y LMNOP LMNOPLMNOPg    !"#       $ % & ' ( ) *     +,-.,-./01234/0123 5homeomorphic-0.1Data.Homeomorphic.InternalData.Homeomorphic.Simple Data.Homeomorphic.SimpleParallelData.Homeomorphic.Hash1Data.Homeomorphic.Hash2Data.Homeomorphic.MemoData.Homeomorphic.ShellIdData.Homeomorphic.MemoCacheData.Homeomorphic.CheckData.Homeomorphic.TestData.HomeomorphicShellshell<<|divecouple HomeomorphicemptyinsertfindfindOneHfindIdsCachegetCacheaddCachetestdiveMcoupleMShellIdsShellIdallIdheadIdrestIdretrieveCommandFindInsertABBAtesteremptyHHashcalcHash checkHashorMorsManyMandMandsM retrieveHead