package Ġsilent orb . imp . execution Ċ Ċ import Ġsilent orb . imp . core .* Ċ Ċ fun Ġnew Library ( functions : ĠList < Complete Function >, Ġtype Names : ĠMap < Type Hash , ĠPath Key > Ġ= Ġmap Of (), Ġtype Aliases : ĠList < Type Alias > Ġ= ĠlistOf ()): ĠNamespace Ġ{ ĊĠ Ġval Ġgrouped Ġ= Ġfunctions ĊĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . path Ġ} ĊĊĠ Ġval Ġsignatures Ġ= Ġgrouped ĊĠĠĠĠĠ Ġ. map Values Ġ{ Ġit . value . map Ġ{ Ġit . signature Ġ} Ġ} ĊĊĠ Ġval Ġimplementation Ġ= Ġgrouped . entries ĊĠĠĠĠĠ Ġ. flatMap Ġ{ Ġ( path , Ġfunction ) Ġ-> ĊĠĠĠĠĠĠĠ Ġfunction . map Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= Ġconvert Complete Signature ( it . signature ) ĊĠĠĠĠĠĠĠĠĠ ĠPair ( path . copy ( type Ġ= Ġsignature . hashCode ()), Ġit . implementation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. associate Ġ{ Ġit Ġ} ĊĊĠ Ġval Ġnamespace Ġ= Ġnamespace From Complete Over loads ( signatures ) ĊĠ Ġreturn Ġnamespace . copy ( ĊĠĠĠĠĠ Ġvalues Ġ= Ġnamespace . values Ġ+ Ġimplementation , ĊĠĠĠĠĠ Ġnode Types Ġ= Ġnamespace . node Types Ġ+ Ġtype Names . entries . associate Ġ{ Ġit . value Ġto Ġit . key Ġ}, ĊĠĠĠĠĠ Ġtypings Ġ= Ġnamespace . typings Ġ+ Ġnew Typ ings (). copy ( ĊĠĠĠĠĠĠĠĠĠ Ġtype Aliases Ġ= Ġtype Aliases ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . alias Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. associate Ġ{ ĠPair ( it . path , Ġit . alias !! ) Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġtype Names Ġ= Ġtype Names . map Values Ġ{ Ġit . value . name Ġ} Ġ+ Ġnamespace . typings . type Names , ĊĠĠĠĠĠĠĠĠĠ Ġnumeric Type Constraints Ġ= Ġtype Aliases ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . numeric Constraint Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. associate Ġ{ ĠPair ( it . path , Ġit . numeric Constraint !! ) Ġ} ĊĠĠĠĠĠ Ġ) ĊĠ Ġ) Ċ } Ċ Ċ fun Ġtype Pair sTo Type Names ( type Pairs : ĠList < Type Pair >) Ġ= ĊĠĠĠ Ġtype Pairs . associate Ġ{ ĠPair ( it . hash , Ġit . key ) Ġ} Ċ