# In reply to @joetroll "not sure where to": when i was like 10 or something i # tried learning haskell and got to lenses and decided i woudl learn it later, but # for my orchestration system i've been designing an API and i've converged on # this kind of interface: konez: > fix (Codebase, Issues) ~> Codebase: cheap[(Codebase, Issues), Codebase]("Read the issues and fix them in the codebase.") > audit (ImplementationRequest, Codebase) ~> Audit: cheap[(ImplementationRequest, Codebase), Audit]("Audit the codebase for issues based on the implementation request") > audit_fix_loop (ImplementationRequest, Codebase) ~> Codebase {.entry.}: (it &&& audit) >>> so[Codebase](((req, code), audit)): if audit.ok: pure(code) else: (req, (code, audit.issues)) >>> lift[(_, here)](fix) >>> audit_fix_loop # where `>>>` (kleisli arrow) and `&&&` are haskell inspired (`it` is a baby # projector and `lift` allows for concurrency and some more general operations) # and FP is really quite cool