flow: Write more understandable Haskell.

[ combinators, functions, library, mit, utility ] [ Propose Tags ]

Flow provides operators for writing more understandable Haskell.

[Skip to Readme]


[Index] [Quick Jump]


Manual Flags


Enables -Werror, which turns warnings into errors.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 1.0.0, 1.0.1, 1.0.2, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.0.10, 1.0.11, 1.0.12, 1.0.13, 1.0.14, 1.0.15, 1.0.17, 1.0.18, 1.0.19, 1.0.20, 1.0.21, 1.0.22, 1.0.23,,,,,, (info)
Change log CHANGELOG.md
Dependencies base (>= && <4.19 || >= && <4.20 || >= && <4.21) [details]
License MIT
Maintainer Taylor Fausak
Category Combinators, Functions, Utility
Source repo head: git clone https://github.com/tfausak/flow
Uploaded by fozworth at 2024-05-18T16:22:06Z
Distributions LTSHaskell:, NixOS:, Stackage:
Reverse Dependencies 10 direct, 12 indirect [details]
Downloads 13966 total (89 in the last 30 days)
Rating 2.5 (votes: 4) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-05-18 [all 1 reports]

Readme for flow-

[back to package description]


CI Hackage

Write more understandable Haskell.

Flow is a package that provides functions and operators for writing more understandable Haskell. It is an alternative to some common idioms like ($) for function application and (.) for function composition.


Flow requires a Haskell compiler. It is tested with recent versions of GHC, but older or different compilers should be acceptable. For installation with Cabal, Flow requires at least Cabal 2.2.


To add Flow as a dependency to your package, add it to your Cabal file.

build-depends: flow ==2.0.*


Flow is designed to be imported unqualified. It does not export anything that conflicts with the base package.

import Flow

Cheat sheet

Flow Base
x |> f x & f
f <| x f $ x
apply x f f x
f .> g f >>> g
g <. f g . f
compose f g x g (f x)
x !> f -
f <! x f $! x
apply' x f seq x (f x)

Converting existing code

If you want to uniformly use flow operators you can use HLint with the hlint-flow.yaml file. For easy use, it is best to extract the hlint-flow.yaml to your project directory and do

> hlint -h hlint-flow.yaml <source file>


> hlint --git -h hlint-flow.yaml

to check all Haskell source tracked by git.

For more information about Flow, please read the Haddock documentation.