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.
