Bow is split in multiple modules that can be imported independently. These modules are:
beginner
| Module | Description | Swift import | 
|---|---|---|
| Core | Higher Kinded Types emulation, function manipulation utilities, type classes, data types, monad transformers and instances for primitive types. | import Bow | 
| Effects | Encapsulation of side effects. | import BowEffects | 
intermediate
| Module | Description | Swift import | 
|---|---|---|
| Optics | Immutable data structures manipulation. | import BowOptics | 
| RxSwift | Integration with the RxSwift library. | import BowRx | 
advanced
| Module | Description | Swift import | 
|---|---|---|
| Recursion Schemes | Recursive data structures, F-algebras and folding / unfolding functions. | import BowRecursionSchemes | 
| Free | Free monads. | import BowFree | 
| Generic | Data types for generic programming. | import BowGeneric | 
Bow also provides some modules that are used in testing. These modules are:
intermediate
| Module | Description | Swift import | 
|---|---|---|
| Generators | Generators for data types in the core module | import BowGenerators | 
| FreeGenerators | Generators for data types in BowFree | import BowFreeGenerators | 
| EffectsGenerators | Generators for data types in BowEffects | import BowEffectsGenerators | 
| RxGenerators | Generators for data types in BowRx | import BowRxGenerators | 
intermediate
| Module | Description | Swift import | 
|---|---|---|
| Laws | Laws for type classes in the core module | import BowLaws | 
| OpticsLaws | Laws for optics | import BowOpticsLaws | 
| EffectsLaws | Laws for effects | import BowEffectsLaws |