// ĠFULL _ JDK Ċ // ĠFILE : Ġimm / Map . java Ċ package Ġimm ; Ċ public Ġinterface ĠMap < K , ĠV > Ġ{ ĊĠĠĠ ĠOption < V > Ġget ( k ĠK ); Ċ } Ċ Ċ // ĠFILE : Ġimm / Set . java Ċ package Ġimm ; Ċ public Ġinterface ĠSet < E > Ġ{ Ċ } Ċ Ċ // ĠFILE : Ġimm / Option . java Ċ package Ġimm ; Ċ public Ġinterface ĠOption < T > Ġ{ ĊĠĠĠ ĠT Ġget OrElse ( T Ġother ); Ċ } Ċ Ċ // ĠFILE : Ġimm / Linked HashSet . java Ċ package Ġimm ; Ċ public Ġclass ĠLinked HashSet < E > Ġextends ĠSet < E > Ġ{ ĊĠĠĠ Ġpublic Ġstatic Ġ< T > ĠLinked HashSet < T > Ġempty () Ġ{ Ġreturn Ġnull ; Ġ} Ċ } Ċ Ċ // ĠFILE : Ġmain . kt Ċ Ċ type alias ĠImmutableMap < K , ĠV > Ġ= Ġimm . Map < K , ĠV > Ċ type alias ĠImmutable Set < E > Ġ= Ġimm . Set < E > Ċ type alias ĠImmutable Linked HashSet < E > Ġ= Ġimm . Linked HashSet < E > Ċ Ċ private Ġtype alias ĠImmutable Multimap < K , ĠV > Ġ= ĠImmutableMap < K , ĠImmutable Set < V >> Ċ Ċ private Ġfun Ġ< K , ĠV > ĠImmutable Multimap < K , ĠV >. put ( key : ĠK , Ġvalue : ĠV ) Ġ{ ĊĠĠĠ Ġthis [ key ]. getOrElse ( Immutable Linked HashSet . empty < V >()) Ċ } Ċ