Needlework brings additional operators to Elixir that allows you to "thread" results of your functions into other function calls. Basically extending the Kernel.|>/2 operator.
Just use Needlework in your modules and thread away!
Example:
defmodule MyModule do
use Needlework
  @spec foo(func :: fun()) :: list()
  def foo(func) do
    func
    ~> Enum.map([1, 2, 3])
  end
endCheck the full documentation
Inspired by an awesome dash
The package can be installed by adding needlework to your list of dependencies in mix.exs:
def deps do
  [
    {:needlework, "~> 1.0.0"}
  ]
end