Bow is a cross-platform library for Typed Functional Programming in Swift.

Modules

  • Bow is split into multiple modules that can be consumed independently. These modules are:
  • Bow: core library. Contains Higher Kinded Types emulation, function manipulation utilities, Typeclasses, Data Types, Monad Transformers, and instances for primitive types.
  • BowOptics: module to work with different optics.
  • BowRecursionSchemes: module to work with recursion schemes.
  • BowFree: module to work with Free Monads.
  • BowGeneric: module to work with generic data types.
  • BowEffects: module to work with effects.
  • BowRx: module to provide an integration with RxSwift.

There are also some modules for testing:

  • BowLaws: laws for type classes in the core module.
  • BowOpticsLaws: laws for optics.
  • BowEffectsLaws: laws for effects.
  • BowGenerators: generators for Property-based Testing for data types in the core module.
  • BowFreeGenerators: generators for Property-based Testing for data types in BowFree.
  • BowEffectsGenerators: generators for Property-based Testing for data types in BowEffects.
  • BowRxGenerators: generators for Property-based Testing for data types in BowRx.

Bow is available using Swift Package Manager, CocoaPods, and Carthage.

Leave a Reply