- Haskell:
cabal build,make build-cli - Rust:
cargo build --release - Full Build:
make build(builds both) - Unit Tests (Haskell):
cabal test unit-testsormake test-cabal ARGS="TestName" - Unit Tests (Rust):
cargo testormake test-cargo - Integration Tests:
make integration-test ARGS="TestName" - Format Code:
make fmt(runs both formatters) - Lint Code:
make lint(runs both linters) - Analyze Project:
make analyze
- Compiler warnings should be treated as errors and fixed, not ignored
- Linter warnings should be treated as errors and fixed, not ignored
- All tests must pass before submitting code
- Code should be thoroughly tested with appropriate unit tests
- GHC Version: 9.8
- Formatting:
fourmoluwith 2 spaces, leading commas - Imports: Use explicit imports, qualified with full names
- Types: Prefer
newtype, useTextinstead ofString - Functions: Avoid partial functions, list comprehensions, match guards
- Error handling: Never use
errororundefined
- Format with
rustfmtviacargo fmt - Lint with Clippy via
cargo clippy - Follow standard Rust idioms including error handling
- Use the Rust embedded tools within the Haskell code via the extlib directory
For complete guidelines, see docs/contributing/STYLE-GUIDE.md