package Ġorg . jl le its ch uh . gu ice Ċ Ċ import Ġcom . google . inject . Module Ċ import Ġcom . google . inject . Private Module Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Module ] Ġwith Ġthe Ġ[ Binder Scope ] Ġbeing Ġconfigured Ġwhen Ġ[ Module . configure ] Ċ Ġ* Ġis Ġcalled Ġby ĠGu ice . Ċ Ġ*/ Ċ fun Ġmodule ( configure : ĠB inder Scope . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠ ĠModule Ġ{ Ġbinder Ġ-> ĠB inder Scope ( binder ). configure () Ġ} Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Private Module ] Ġwith Ġthe Ġ[ Private Binder Scope ] Ġbeing Ġconfigured Ġwhen Ġ[ Private Module . configure ] Ċ Ġ* Ġis Ġcalled Ġby ĠGu ice . Ċ Ġ*/ Ċ fun Ġprivate Module ( configure : ĠPrivate Binder Scope . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠ Ġ// ĠThe ĠPrivate Module Ġdata Ġtype Ġhas Ġsome Ġreflection Ġchecks Ġto Ġget Ġthe Ġright Ġtype Ġpassed Ġin . ĠE as ier Ġto Ġjust Ġuse Ġit . ĊĠĠĠ Ġobject Ġ: ĠPrivate Module () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconfigure () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure . invoke ( Private Binder Scope ( binder ())) ĊĊĠĠĠ Ġ}