flow

Write more understandable Haskell.

Version on this page:1.0.22
LTS Haskell 22.41:2.0.0.5
Stackage Nightly 2024-11-12:2.0.0.5
Latest on Hackage:2.0.0.5

See all snapshots flow appears in

MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:flow-1.0.22@sha256:631e6c39fd2e3d2887ff8156c04d291dac77108c8f2be8182073e98741ef9c58,920

Module documentation for 1.0.22

Depends on 1 package(full list with versions):
Used by 1 package in lts-18.8(full list with versions):

Flow

CI Hackage Stackage

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.

Requirements

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 1.8.

Installation

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

build-depends: flow ==1.0.*

Usage

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>

or

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

to check all Haskell source tracked by git.

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