https://github.com/runeksvendsen/haskell-function-graph
Compose Haskell functions to reach one type from another
https://github.com/runeksvendsen/haskell-function-graph
Last synced: 17 days ago
JSON representation
Compose Haskell functions to reach one type from another
- Host: GitHub
- URL: https://github.com/runeksvendsen/haskell-function-graph
- Owner: runeksvendsen
- License: other
- Created: 2023-09-08T14:13:13.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-25T10:06:21.000Z (2 months ago)
- Last Synced: 2025-06-12T07:08:24.322Z (20 days ago)
- Language: Haskell
- Size: 12.1 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Haskell Function Graph
A form of "Hoogle type search" for functions. Enables finding a sequence of composed functions that converts from one type to another. For example, searching for "lazy Text to strict ByteString" returns e.g. `bytestring-0.11.4.0:Data.ByteString.Char8.pack . text-2.0.2:Data.Text.Lazy.unpack`, `text-2.0.2:Data.Text.Encoding.encodeUtf8 . text-2.0.2:Data.Text.Lazy.toStrict` and `bytestring-0.11.4.0:Data.ByteString.toStrict . text-2.0.2:Data.Text.Lazy.Encoding.encodeUtf8`.
## Running
Run
```
nix-shell --run 'cabal run server -- -p 8080 -g data/all3.json
```and visit http://localhost:8080.
### Using Nix
Run
```
$(nix-build --no-out-link)/bin/server-wrapped -p 8080 -g data/all3.json
```### Using Docker
A Docker image, containing the web server, is built and pushed in CI to the [Packages of this repository](https://github.com/runeksvendsen?tab=packages&repo_name=haskell-function-graph). To run it, use the following command:
```
docker run -p 8080:8080 ghcr.io/runeksvendsen/haskell-function-graph/web-server:latest
```where the `latest` tag points to the build of the most recent commit on `main`.
## Demo

## TODO
Run the shell script `TODO.sh` to list unfinished TODOs.