Reduce Component module to minimal necessary functionality
Remove unused functions
Implement Model interface based on Free Monad Interpreter pattern
Cleanup clutter
Adapt Core module to new Component interface
Use Monad constraints for logging functions
Rewrite Main; include some functions from other modules
Implement XcbView for latest Model
Add xcbview to Config
Update type name for Core Controller
Fix Component type
Make SnapResist a separate Component
Add SnapResist Component to Config
Split up pragmas in separate lines
Additional helper functions for pretty printing log
Implement Views as Components
Make log printer configureable
Improve FIFO log printer
Replace askL with infix operator
Generalize Component exec function