AdditionPrecedence public func * <A, B, C> (lhs: Lens<A, B>, rhs: Lens<B, C>) -> Lens<A, C> { return Lens<A, C>( getter: { a in rhs.get(lhs.get(a)) }, setter: { (c, a) in lhs.set(rhs.set(c, lhs.get(a)), a) } ) } public func *~ <A, B> (lhs: Lens<A, B>, rhs: B) -> (A) -> A { return { a in lhs.set(rhs, a) } } public func |> <A, B> (x: A, f: (A) -> B) -> B { return f(x) } public func |> <A, B, C> (f: @escaping (A) -> B, g: @escaping (B) -> C) -> (A) -> C { return { g(f($0)) } } 27 FactoryͷࣗಈੜʹΑΓςετΛॻ͖͘͢͢Δ, iOSDC 2018 Reject Conference days1