I think naming conventions might help:

    (b Box[InType]) Map[OutType any](transformFunction func(InType) OutType) Box[OutType]
Same in Python:

    def map[U](self, f: Callable[[T], U]) -> Box[U]
vs

    def map[OutType](self, transform_function: Callable[[InType], OutType]) -> Box[OutType]
and Java:

    public <OutType> Box<OutType> map(Function<InType, OutType> transformFunction)
vs.

    public <U> Box<U> map(Function<T, U> f)