1
0
mirror of https://github.com/IBM/fp-go.git synced 2025-08-30 19:52:00 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Dr. Carsten Leue
b7280ca862 fix: some docs
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
2023-07-18 16:27:05 +02:00
294 changed files with 681 additions and 818 deletions

View File

@@ -1,85 +0,0 @@
name: fp-go CI
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
inputs:
dryRun:
description: 'Dry-Run'
default: 'true'
required: false
env:
# Currently no way to detect automatically
DEFAULT_BRANCH: main
GO_VERSION: 1.20.5 # renovate: datasource=golang-version depName=golang
NODE_VERSION: 18
DRY_RUN: true
jobs:
build:
runs-on: ubuntu-latest
steps:
# full checkout for semantic-release
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
fetch-depth: 0
- name: Set up go ${{env.GO_VERSION}}
uses: actions/setup-go@v4
with:
go-version: ${{env.GO_VERSION}}
-
name: Tests
run: |
go mod tidy
go test -v ./...
release:
needs: [build]
if: github.repository == 'IBM/fp-go' && github.event_name != 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: write
issues: write
pull-requests: write
steps:
# full checkout for semantic-release
- name: Full checkout
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
fetch-depth: 0
- name: Set up Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Set up go ${{env.GO_VERSION}}
uses: actions/setup-go@v4
with:
go-version: ${{env.GO_VERSION}}
# The dry-run evaluation is only made for non PR events. Manual trigger w/dryRun true, main branch and any tagged branches will set DRY run to false
- name: Check dry run
run: |
if [[ "${{github.event_name}}" == "workflow_dispatch" && "${{ github.event.inputs.dryRun }}" != "true" ]]; then
echo "DRY_RUN=false" >> $GITHUB_ENV
elif [[ "${{github.ref}}" == "refs/heads/${{env.DEFAULT_BRANCH}}" ]]; then
echo "DRY_RUN=false" >> $GITHUB_ENV
elif [[ "${{github.ref}}" =~ ^refs/heads/v[0-9]+(\.[0-9]+)?$ ]]; then
echo "DRY_RUN=false" >> $GITHUB_ENV
fi
- name: Semantic Release
run: |
npx -p conventional-changelog-conventionalcommits -p semantic-release semantic-release --dry-run ${{env.DRY_RUN}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,67 +0,0 @@
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/github",
{
"releasedLabels": false
}
]
],
"analyzeCommits": {
"releaseRules": [
{
"type": "build",
"release": "patch"
}
]
},
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "perf",
"section": "Performance Improvements"
},
{
"type": "revert",
"section": "Reverts"
},
{
"type": "docs",
"section": "Documentation"
},
{
"type": "chore",
"section": "Miscellaneous Chores"
},
{
"type": "refactor",
"section": "Code Refactoring"
},
{
"type": "test",
"section": "Tests"
},
{
"type": "build",
"section": "Build System"
}
]
},
"tagFormat": "v${version}",
"branches": [
{
"name": "main"
}
]
}

View File

@@ -1,9 +1,19 @@
# Functional programming library for golang
**🚧 Work in progress! 🚧**
**🚧 Work in progress! 🚧** Despite major version 1 because of https://github.com/semantic-release/semantic-release/issues/1507. Trying to not make breaking changes, but devil is in the details.
![logo](resources/images/logo.png)
This library is strongly influenced by the awesome [fp-ts](https://github.com/gcanti/fp-ts).
## Getting started
```bash
go get github.com/IBM/fp-go
```
Refer to the [samples](./samples/).
## Design Goal
This library aims to provide a set of data types and functions that make it easy and fun to write maintainable and testable code in golang. It encourages the following patterns:

View File

@@ -1,12 +1,12 @@
package array
import (
G "github.com/IBM/fp-go/array/generic"
F "github.com/IBM/fp-go/function"
"github.com/IBM/fp-go/internal/array"
M "github.com/IBM/fp-go/monoid"
O "github.com/IBM/fp-go/option"
"github.com/IBM/fp-go/tuple"
G "github.com/ibm/fp-go/array/generic"
F "github.com/ibm/fp-go/function"
"github.com/ibm/fp-go/internal/array"
M "github.com/ibm/fp-go/monoid"
O "github.com/ibm/fp-go/option"
"github.com/ibm/fp-go/tuple"
)
// From constructs an array from a set of variadic arguments

View File

@@ -4,11 +4,11 @@ import (
"strings"
"testing"
F "github.com/IBM/fp-go/function"
"github.com/IBM/fp-go/internal/utils"
O "github.com/IBM/fp-go/option"
S "github.com/IBM/fp-go/string"
T "github.com/IBM/fp-go/tuple"
F "github.com/ibm/fp-go/function"
"github.com/ibm/fp-go/internal/utils"
O "github.com/ibm/fp-go/option"
S "github.com/ibm/fp-go/string"
T "github.com/ibm/fp-go/tuple"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,7 +1,7 @@
package array
import (
E "github.com/IBM/fp-go/eq"
E "github.com/ibm/fp-go/eq"
)
func equals[T any](left []T, right []T, eq func(T, T) bool) bool {

View File

@@ -1,10 +1,10 @@
package generic
import (
F "github.com/IBM/fp-go/function"
"github.com/IBM/fp-go/internal/array"
O "github.com/IBM/fp-go/option"
"github.com/IBM/fp-go/tuple"
F "github.com/ibm/fp-go/function"
"github.com/ibm/fp-go/internal/array"
O "github.com/ibm/fp-go/option"
"github.com/ibm/fp-go/tuple"
)
// Of constructs a single element array

View File

@@ -3,7 +3,7 @@ package generic
import (
"sort"
O "github.com/IBM/fp-go/ord"
O "github.com/ibm/fp-go/ord"
)
// Sort implements a stable sort on the array given the provided ordering

View File

@@ -1,8 +1,8 @@
package array
import (
F "github.com/IBM/fp-go/function"
M "github.com/IBM/fp-go/magma"
F "github.com/ibm/fp-go/function"
M "github.com/ibm/fp-go/magma"
)
func ConcatAll[A any](m M.Magma[A]) func(A) func([]A) A {

View File

@@ -5,7 +5,7 @@ import (
"github.com/stretchr/testify/assert"
M "github.com/IBM/fp-go/magma"
M "github.com/ibm/fp-go/magma"
)
var subInt = M.MakeMagma(func(first int, second int) int {

View File

@@ -1,8 +1,8 @@
package array
import (
"github.com/IBM/fp-go/internal/array"
M "github.com/IBM/fp-go/monoid"
"github.com/ibm/fp-go/internal/array"
M "github.com/ibm/fp-go/monoid"
)
func concat[T any](left, right []T) []T {

View File

@@ -3,7 +3,7 @@ package array
import (
"testing"
M "github.com/IBM/fp-go/monoid/testing"
M "github.com/ibm/fp-go/monoid/testing"
)
func TestMonoid(t *testing.T) {

View File

@@ -1,8 +1,8 @@
package array
import (
F "github.com/IBM/fp-go/function"
O "github.com/IBM/fp-go/option"
F "github.com/ibm/fp-go/function"
O "github.com/ibm/fp-go/option"
)
// We need to pass the members of the applicative explicitly, because golang does neither support higher kinded types nor template methods on structs or interfaces

View File

@@ -5,7 +5,7 @@ import (
"github.com/stretchr/testify/assert"
O "github.com/IBM/fp-go/option"
O "github.com/ibm/fp-go/option"
)
func TestSequenceOption(t *testing.T) {

View File

@@ -1,8 +1,8 @@
package array
import (
G "github.com/IBM/fp-go/array/generic"
O "github.com/IBM/fp-go/ord"
G "github.com/ibm/fp-go/array/generic"
O "github.com/ibm/fp-go/ord"
)
// Sort implements a stable sort on the array given the provided ordering

View File

@@ -3,7 +3,7 @@ package array
import (
"testing"
O "github.com/IBM/fp-go/ord"
O "github.com/ibm/fp-go/ord"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,6 +1,6 @@
package array
import "github.com/IBM/fp-go/internal/array"
import "github.com/ibm/fp-go/internal/array"
func Traverse[A, B, HKTB, HKTAB, HKTRB any](
fof func([]B) HKTRB,

View File

@@ -3,7 +3,7 @@ package array
import (
"testing"
O "github.com/IBM/fp-go/option"
O "github.com/ibm/fp-go/option"
"github.com/stretchr/testify/assert"
)

View File

@@ -3,8 +3,8 @@ package bytes
import (
"bytes"
A "github.com/IBM/fp-go/array"
O "github.com/IBM/fp-go/ord"
A "github.com/ibm/fp-go/array"
O "github.com/ibm/fp-go/ord"
)
var (

View File

@@ -3,7 +3,7 @@ package bytes
import (
"testing"
M "github.com/IBM/fp-go/monoid/testing"
M "github.com/ibm/fp-go/monoid/testing"
)
func TestMonoid(t *testing.T) {

View File

@@ -380,8 +380,8 @@ func generateApplyHelpers(filename string, count int) error {
// print out some helpers
fmt.Fprintf(f, `
import (
F "github.com/IBM/fp-go/function"
T "github.com/IBM/fp-go/tuple"
F "github.com/ibm/fp-go/function"
T "github.com/ibm/fp-go/tuple"
)
`)

View File

@@ -5,6 +5,7 @@ import (
"log"
"os"
"path/filepath"
"time"
C "github.com/urfave/cli/v2"
)
@@ -83,24 +84,34 @@ func generateContextReaderIOEitherHelpers(filename string, count int) error {
// log
log.Printf("Generating code in [%s] for package [%s] with [%d] repetitions ...", filename, pkg, count)
writePackage(f, pkg)
// some header
fmt.Fprintln(f, "// Code generated by go generate; DO NOT EDIT.")
fmt.Fprintln(f, "// This file was generated by robots at")
fmt.Fprintf(f, "// %s\n", time.Now())
fmt.Fprintf(f, "package %s\n\n", pkg)
fmt.Fprintf(f, `
import (
"context"
G "github.com/IBM/fp-go/context/%s/generic"
G "github.com/ibm/fp-go/context/%s/generic"
)
`, pkg)
writePackage(fg, "generic")
// some header
fmt.Fprintln(fg, "// Code generated by go generate; DO NOT EDIT.")
fmt.Fprintln(fg, "// This file was generated by robots at")
fmt.Fprintf(fg, "// %s\n", time.Now())
fmt.Fprintf(fg, "package generic\n\n")
fmt.Fprintf(fg, `
import (
"context"
E "github.com/IBM/fp-go/either"
RE "github.com/IBM/fp-go/readerioeither/generic"
E "github.com/ibm/fp-go/either"
RE "github.com/ibm/fp-go/readerioeither/generic"
)
`)

View File

@@ -141,8 +141,8 @@ func generateEitherHelpers(filename string, count int) error {
fmt.Fprintf(f, `
import (
A "github.com/IBM/fp-go/internal/apply"
T "github.com/IBM/fp-go/tuple"
A "github.com/ibm/fp-go/internal/apply"
T "github.com/ibm/fp-go/tuple"
)
`)

View File

@@ -1,16 +0,0 @@
package cli
import (
"fmt"
"os"
"time"
)
func writePackage(f *os.File, pkg string) {
// print package
fmt.Fprintf(f, "package %s\n\n", pkg)
// some header
fmt.Fprintln(f, "// Code generated by go generate; DO NOT EDIT.")
fmt.Fprintln(f, "// This file was generated by robots at")
fmt.Fprintf(f, "// %s\n", time.Now())
}

View File

@@ -53,8 +53,8 @@ func generateIdentityHelpers(filename string, count int) error {
fmt.Fprintf(f, `
import (
A "github.com/IBM/fp-go/internal/apply"
T "github.com/IBM/fp-go/tuple"
A "github.com/ibm/fp-go/internal/apply"
T "github.com/ibm/fp-go/tuple"
)
`)

View File

@@ -139,8 +139,8 @@ func generateOptionHelpers(filename string, count int) error {
fmt.Fprintf(f, `
import (
A "github.com/IBM/fp-go/internal/apply"
T "github.com/IBM/fp-go/tuple"
A "github.com/ibm/fp-go/internal/apply"
T "github.com/ibm/fp-go/tuple"
)
`)

View File

@@ -123,7 +123,7 @@ func generateReaderHelpers(filename string, count int) error {
fmt.Fprintf(f, `
import (
G "github.com/IBM/fp-go/%s/generic"
G "github.com/ibm/fp-go/%s/generic"
)
`, pkg)

View File

@@ -160,7 +160,7 @@ func generateReaderIOEitherHelpers(filename string, count int) error {
fmt.Fprintf(f, `
import (
G "github.com/IBM/fp-go/%s/generic"
G "github.com/ibm/fp-go/%s/generic"
)
`, pkg)
@@ -173,8 +173,8 @@ import (
fmt.Fprintf(fg, `
import (
E "github.com/IBM/fp-go/either"
RD "github.com/IBM/fp-go/reader/generic"
E "github.com/ibm/fp-go/either"
RD "github.com/ibm/fp-go/reader/generic"
)
`)

View File

@@ -346,8 +346,8 @@ func generateTupleHelpers(filename string, count int) error {
fmt.Fprintf(f, `
import (
M "github.com/IBM/fp-go/monoid"
O "github.com/IBM/fp-go/ord"
M "github.com/ibm/fp-go/monoid"
O "github.com/ibm/fp-go/ord"
)
`)

View File

@@ -12,6 +12,4 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Package context contains versions of monads that work with a golang [context.Context]
package context

View File

@@ -3,9 +3,9 @@ package generic
import (
"context"
E "github.com/IBM/fp-go/either"
ET "github.com/IBM/fp-go/either"
IOE "github.com/IBM/fp-go/ioeither/generic"
E "github.com/ibm/fp-go/either"
ET "github.com/ibm/fp-go/either"
IOE "github.com/ibm/fp-go/ioeither/generic"
)
// withContext wraps an existing IOEither and performs a context check for cancellation before delegating

View File

@@ -3,8 +3,8 @@ package ioeither
import (
"context"
G "github.com/IBM/fp-go/context/ioeither/generic"
IOE "github.com/IBM/fp-go/ioeither"
G "github.com/ibm/fp-go/context/ioeither/generic"
IOE "github.com/ibm/fp-go/ioeither"
)
// withContext wraps an existing IOEither and performs a context check for cancellation before delegating

View File

@@ -16,7 +16,7 @@
package reader
import (
R "github.com/IBM/fp-go/reader/generic"
R "github.com/ibm/fp-go/reader/generic"
)
// TraverseArray transforms an array

View File

@@ -18,7 +18,7 @@ package reader
import (
"context"
R "github.com/IBM/fp-go/reader/generic"
R "github.com/ibm/fp-go/reader/generic"
)
// these functions curry a golang function with the context as the firsr parameter into a either reader with the context as the last parameter

View File

@@ -3,7 +3,7 @@ package reader
import (
"context"
R "github.com/IBM/fp-go/reader/generic"
R "github.com/ibm/fp-go/reader/generic"
)
// these functions curry a golang function with the context as the firsr parameter into a either reader with the context as the last parameter

View File

@@ -3,7 +3,7 @@ package reader
import (
"context"
R "github.com/IBM/fp-go/reader/generic"
R "github.com/ibm/fp-go/reader/generic"
)
func MonadMap[A, B any](fa Reader[A], f func(A) B) Reader[B] {

View File

@@ -6,8 +6,8 @@ import (
"strings"
"testing"
F "github.com/IBM/fp-go/function"
T "github.com/IBM/fp-go/tuple"
F "github.com/ibm/fp-go/function"
T "github.com/ibm/fp-go/tuple"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,8 +1,8 @@
package reader
import (
R "github.com/IBM/fp-go/reader/generic"
T "github.com/IBM/fp-go/tuple"
R "github.com/ibm/fp-go/reader/generic"
T "github.com/ibm/fp-go/tuple"
)
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple

View File

@@ -4,7 +4,7 @@ package reader
import (
"context"
R "github.com/IBM/fp-go/reader"
R "github.com/ibm/fp-go/reader"
)
// Reader is a specialization of the Reader monad assuming a golang context as the context of the monad

View File

@@ -1,7 +1,7 @@
package readereither
import (
RE "github.com/IBM/fp-go/readereither/generic"
RE "github.com/ibm/fp-go/readereither/generic"
)
// TraverseArray transforms an array

View File

@@ -3,7 +3,7 @@ package readereither
import (
"context"
E "github.com/IBM/fp-go/either"
E "github.com/ibm/fp-go/either"
)
// withContext wraps an existing ReaderEither and performs a context check for cancellation before deletating

View File

@@ -3,7 +3,7 @@ package readereither
import (
"context"
RE "github.com/IBM/fp-go/readereither/generic"
RE "github.com/ibm/fp-go/readereither/generic"
)
// these functions curry a golang function with the context as the firsr parameter into a either reader with the context as the last parameter

View File

@@ -3,11 +3,11 @@ package exec
import (
"context"
RE "github.com/IBM/fp-go/context/readereither"
E "github.com/IBM/fp-go/either"
"github.com/IBM/fp-go/exec"
F "github.com/IBM/fp-go/function"
GE "github.com/IBM/fp-go/internal/exec"
RE "github.com/ibm/fp-go/context/readereither"
E "github.com/ibm/fp-go/either"
"github.com/ibm/fp-go/exec"
F "github.com/ibm/fp-go/function"
GE "github.com/ibm/fp-go/internal/exec"
)
var (

View File

@@ -3,7 +3,7 @@ package readereither
import (
"context"
RE "github.com/IBM/fp-go/readereither/generic"
RE "github.com/ibm/fp-go/readereither/generic"
)
// these functions curry a golang function with the context as the firsr parameter into a either reader with the context as the last parameter

View File

@@ -3,10 +3,10 @@ package readereither
import (
"context"
R "github.com/IBM/fp-go/context/reader"
ET "github.com/IBM/fp-go/either"
O "github.com/IBM/fp-go/option"
RE "github.com/IBM/fp-go/readereither/generic"
R "github.com/ibm/fp-go/context/reader"
ET "github.com/ibm/fp-go/either"
O "github.com/ibm/fp-go/option"
RE "github.com/ibm/fp-go/readereither/generic"
)
func MakeReaderEither[A any](f func(context.Context) ET.Either[error, A]) ReaderEither[A] {

View File

@@ -1,8 +1,8 @@
package readereither
import (
RE "github.com/IBM/fp-go/readereither/generic"
T "github.com/IBM/fp-go/tuple"
RE "github.com/ibm/fp-go/readereither/generic"
T "github.com/ibm/fp-go/tuple"
)
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple

View File

@@ -4,7 +4,7 @@ package readereither
import (
"context"
RE "github.com/IBM/fp-go/readereither"
RE "github.com/ibm/fp-go/readereither"
)
// ReaderEither is a specialization of the Reader monad for the typical golang scenario

View File

@@ -1,8 +1,8 @@
package readerio
import (
IO "github.com/IBM/fp-go/io"
R "github.com/IBM/fp-go/readerio/generic"
IO "github.com/ibm/fp-go/io"
R "github.com/ibm/fp-go/readerio/generic"
)
// TraverseArray transforms an array

View File

@@ -3,8 +3,8 @@ package readerio
import (
"context"
IO "github.com/IBM/fp-go/io"
R "github.com/IBM/fp-go/readerio/generic"
IO "github.com/ibm/fp-go/io"
R "github.com/ibm/fp-go/readerio/generic"
)
// these functions curry a golang function with the context as the firsr parameter into a either reader with the context as the last parameter

View File

@@ -3,7 +3,7 @@ package readerio
import (
"context"
R "github.com/IBM/fp-go/readerio/generic"
R "github.com/ibm/fp-go/readerio/generic"
)
func MonadMap[A, B any](fa ReaderIO[A], f func(A) B) ReaderIO[B] {

View File

@@ -6,9 +6,9 @@ import (
"strings"
"testing"
F "github.com/IBM/fp-go/function"
IO "github.com/IBM/fp-go/io"
T "github.com/IBM/fp-go/tuple"
F "github.com/ibm/fp-go/function"
IO "github.com/ibm/fp-go/io"
T "github.com/ibm/fp-go/tuple"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,8 +1,8 @@
package readerio
import (
R "github.com/IBM/fp-go/readerio/generic"
T "github.com/IBM/fp-go/tuple"
R "github.com/ibm/fp-go/readerio/generic"
T "github.com/ibm/fp-go/tuple"
)
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple

View File

@@ -4,7 +4,7 @@ package readerio
import (
"context"
R "github.com/IBM/fp-go/readerio"
R "github.com/ibm/fp-go/readerio"
)
// ReaderIO is a specialization of the ReaderIO monad assuming a golang context as the context of the monad

View File

@@ -1,7 +1,7 @@
package readerioeither
import (
G "github.com/IBM/fp-go/context/readerioeither/generic"
G "github.com/ibm/fp-go/context/readerioeither/generic"
)
// WithContext wraps an existing ReaderIOEither and performs a context check for cancellation before delegating

View File

@@ -1,4 +1,3 @@
// Package readerioeither contains a version of [ReaderIOEither] that takes a golang [context.Context] as its context
package readerioeither
//go:generate go run ../.. contextreaderioeither --count 10 --filename gen.go

View File

@@ -3,9 +3,9 @@ package readerioeither
import (
"context"
G "github.com/IBM/fp-go/context/readerioeither/generic"
ET "github.com/IBM/fp-go/either"
EQ "github.com/IBM/fp-go/eq"
G "github.com/ibm/fp-go/context/readerioeither/generic"
ET "github.com/ibm/fp-go/either"
EQ "github.com/ibm/fp-go/eq"
)
// Eq implements the equals predicate for values contained in the IOEither monad

View File

@@ -3,11 +3,11 @@ package exec
import (
"context"
RIOE "github.com/IBM/fp-go/context/readerioeither"
"github.com/IBM/fp-go/exec"
F "github.com/IBM/fp-go/function"
GE "github.com/IBM/fp-go/internal/exec"
IOE "github.com/IBM/fp-go/ioeither"
RIOE "github.com/ibm/fp-go/context/readerioeither"
"github.com/ibm/fp-go/exec"
F "github.com/ibm/fp-go/function"
GE "github.com/ibm/fp-go/internal/exec"
IOE "github.com/ibm/fp-go/ioeither"
)
var (

View File

@@ -5,11 +5,11 @@ import (
"io"
"os"
RIOE "github.com/IBM/fp-go/context/readerioeither"
ET "github.com/IBM/fp-go/either"
F "github.com/IBM/fp-go/function"
"github.com/IBM/fp-go/internal/file"
IOE "github.com/IBM/fp-go/ioeither"
RIOE "github.com/ibm/fp-go/context/readerioeither"
ET "github.com/ibm/fp-go/either"
F "github.com/ibm/fp-go/function"
"github.com/ibm/fp-go/internal/file"
IOE "github.com/ibm/fp-go/ioeither"
)
var (

View File

@@ -7,7 +7,7 @@ package readerioeither
import (
"context"
G "github.com/IBM/fp-go/context/readerioeither/generic"
G "github.com/ibm/fp-go/context/readerioeither/generic"
)
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[R]]

View File

@@ -3,9 +3,9 @@ package generic
import (
"context"
CIOE "github.com/IBM/fp-go/context/ioeither/generic"
E "github.com/IBM/fp-go/either"
IOE "github.com/IBM/fp-go/ioeither/generic"
CIOE "github.com/ibm/fp-go/context/ioeither/generic"
E "github.com/ibm/fp-go/either"
IOE "github.com/ibm/fp-go/ioeither/generic"
)
// withContext wraps an existing ReaderIOEither and performs a context check for cancellation before delegating

View File

@@ -3,10 +3,10 @@ package generic
import (
"context"
E "github.com/IBM/fp-go/either"
ET "github.com/IBM/fp-go/either"
EQ "github.com/IBM/fp-go/eq"
G "github.com/IBM/fp-go/readerioeither/generic"
E "github.com/ibm/fp-go/either"
ET "github.com/ibm/fp-go/either"
EQ "github.com/ibm/fp-go/eq"
G "github.com/ibm/fp-go/readerioeither/generic"
)
// Eq implements the equals predicate for values contained in the IOEither monad

View File

@@ -7,8 +7,8 @@ package generic
import (
"context"
E "github.com/IBM/fp-go/either"
RE "github.com/IBM/fp-go/readerioeither/generic"
E "github.com/ibm/fp-go/either"
RE "github.com/ibm/fp-go/readerioeither/generic"
)
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GRA]

View File

@@ -4,13 +4,13 @@ import (
"context"
"time"
E "github.com/IBM/fp-go/either"
ER "github.com/IBM/fp-go/errors"
F "github.com/IBM/fp-go/function"
IO "github.com/IBM/fp-go/io/generic"
IOE "github.com/IBM/fp-go/ioeither/generic"
O "github.com/IBM/fp-go/option"
RIE "github.com/IBM/fp-go/readerioeither/generic"
E "github.com/ibm/fp-go/either"
ER "github.com/ibm/fp-go/errors"
F "github.com/ibm/fp-go/function"
IO "github.com/ibm/fp-go/io/generic"
IOE "github.com/ibm/fp-go/ioeither/generic"
O "github.com/ibm/fp-go/option"
RIE "github.com/ibm/fp-go/readerioeither/generic"
)
func FromEither[

View File

@@ -3,9 +3,9 @@ package generic
import (
"context"
E "github.com/IBM/fp-go/either"
F "github.com/IBM/fp-go/function"
RIE "github.com/IBM/fp-go/readerioeither/generic"
E "github.com/ibm/fp-go/either"
F "github.com/ibm/fp-go/function"
RIE "github.com/ibm/fp-go/readerioeither/generic"
)
// WithResource constructs a function that creates a resource, then operates on it and then releases the resource

View File

@@ -3,9 +3,9 @@ package generic
import (
"context"
E "github.com/IBM/fp-go/either"
RE "github.com/IBM/fp-go/readerioeither/generic"
T "github.com/IBM/fp-go/tuple"
E "github.com/ibm/fp-go/either"
RE "github.com/ibm/fp-go/readerioeither/generic"
T "github.com/ibm/fp-go/tuple"
)
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple

View File

@@ -3,8 +3,8 @@ package generic
import (
"context"
E "github.com/IBM/fp-go/either"
RE "github.com/IBM/fp-go/readerioeither/generic"
E "github.com/ibm/fp-go/either"
RE "github.com/ibm/fp-go/readerioeither/generic"
)
// TraverseArray transforms an array

View File

@@ -4,14 +4,14 @@ import (
"io"
"net/http"
B "github.com/IBM/fp-go/bytes"
RIOE "github.com/IBM/fp-go/context/readerioeither"
F "github.com/IBM/fp-go/function"
H "github.com/IBM/fp-go/http"
IOE "github.com/IBM/fp-go/ioeither"
IOEF "github.com/IBM/fp-go/ioeither/file"
J "github.com/IBM/fp-go/json"
T "github.com/IBM/fp-go/tuple"
B "github.com/ibm/fp-go/bytes"
RIOE "github.com/ibm/fp-go/context/readerioeither"
F "github.com/ibm/fp-go/function"
H "github.com/ibm/fp-go/http"
IOE "github.com/ibm/fp-go/ioeither"
IOEF "github.com/ibm/fp-go/ioeither/file"
J "github.com/ibm/fp-go/json"
T "github.com/ibm/fp-go/tuple"
)
type (

View File

@@ -4,13 +4,13 @@ import (
"context"
"time"
R "github.com/IBM/fp-go/context/reader"
RIO "github.com/IBM/fp-go/context/readerio"
G "github.com/IBM/fp-go/context/readerioeither/generic"
ET "github.com/IBM/fp-go/either"
IO "github.com/IBM/fp-go/io"
IOE "github.com/IBM/fp-go/ioeither"
O "github.com/IBM/fp-go/option"
R "github.com/ibm/fp-go/context/reader"
RIO "github.com/ibm/fp-go/context/readerio"
G "github.com/ibm/fp-go/context/readerioeither/generic"
ET "github.com/ibm/fp-go/either"
IO "github.com/ibm/fp-go/io"
IOE "github.com/ibm/fp-go/ioeither"
O "github.com/ibm/fp-go/option"
)
func FromEither[A any](e ET.Either[error, A]) ReaderIOEither[A] {

View File

@@ -6,9 +6,9 @@ import (
"testing"
"time"
E "github.com/IBM/fp-go/either"
F "github.com/IBM/fp-go/function"
"github.com/IBM/fp-go/internal/utils"
E "github.com/ibm/fp-go/either"
F "github.com/ibm/fp-go/function"
"github.com/ibm/fp-go/internal/utils"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,7 +1,7 @@
package readerioeither
import (
G "github.com/IBM/fp-go/context/readerioeither/generic"
G "github.com/ibm/fp-go/context/readerioeither/generic"
)
// WithResource constructs a function that creates a resource, then operates on it and then releases the resource

View File

@@ -1,8 +1,8 @@
package readerioeither
import (
G "github.com/IBM/fp-go/context/readerioeither/generic"
T "github.com/IBM/fp-go/tuple"
G "github.com/ibm/fp-go/context/readerioeither/generic"
T "github.com/ibm/fp-go/tuple"
)
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple

View File

@@ -1,7 +1,7 @@
package readerioeither
import (
G "github.com/IBM/fp-go/context/readerioeither/generic"
G "github.com/ibm/fp-go/context/readerioeither/generic"
)
// TraverseArray transforms an array

View File

@@ -4,7 +4,7 @@ package readerioeither
import (
"context"
RE "github.com/IBM/fp-go/readerioeither"
RE "github.com/ibm/fp-go/readerioeither"
)
// ReaderIOEither is a specialization of the Reader monad for the typical golang scenario

View File

@@ -1,8 +1,8 @@
package either
import (
M "github.com/IBM/fp-go/monoid"
S "github.com/IBM/fp-go/semigroup"
M "github.com/ibm/fp-go/monoid"
S "github.com/ibm/fp-go/semigroup"
)
func ApplySemigroup[E, A any](s S.Semigroup[A]) S.Semigroup[Either[E, A]] {

View File

@@ -3,8 +3,8 @@ package either
import (
"testing"
M "github.com/IBM/fp-go/monoid/testing"
N "github.com/IBM/fp-go/number"
M "github.com/ibm/fp-go/monoid/testing"
N "github.com/ibm/fp-go/number"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,7 +1,7 @@
package either
import (
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
)
// these function curry a golang function that returns an error into its curried version that returns an either

View File

@@ -5,9 +5,9 @@
package either
import (
E "github.com/IBM/fp-go/errors"
F "github.com/IBM/fp-go/function"
O "github.com/IBM/fp-go/option"
E "github.com/ibm/fp-go/errors"
F "github.com/ibm/fp-go/function"
O "github.com/ibm/fp-go/option"
)
// Of is equivalent to [Right]

View File

@@ -4,10 +4,10 @@ import (
"errors"
"testing"
F "github.com/IBM/fp-go/function"
"github.com/IBM/fp-go/internal/utils"
O "github.com/IBM/fp-go/option"
S "github.com/IBM/fp-go/string"
F "github.com/ibm/fp-go/function"
"github.com/ibm/fp-go/internal/utils"
O "github.com/ibm/fp-go/option"
S "github.com/ibm/fp-go/string"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,8 +1,8 @@
package either
import (
EQ "github.com/IBM/fp-go/eq"
F "github.com/IBM/fp-go/function"
EQ "github.com/ibm/fp-go/eq"
F "github.com/ibm/fp-go/function"
)
// Constructs an equal predicate for an `Either`

View File

@@ -3,10 +3,10 @@ package exec
import (
"context"
E "github.com/IBM/fp-go/either"
"github.com/IBM/fp-go/exec"
F "github.com/IBM/fp-go/function"
GE "github.com/IBM/fp-go/internal/exec"
E "github.com/ibm/fp-go/either"
"github.com/ibm/fp-go/exec"
F "github.com/ibm/fp-go/function"
GE "github.com/ibm/fp-go/internal/exec"
)
var (

View File

@@ -5,8 +5,8 @@ package either
import (
A "github.com/IBM/fp-go/internal/apply"
T "github.com/IBM/fp-go/tuple"
A "github.com/ibm/fp-go/internal/apply"
T "github.com/ibm/fp-go/tuple"
)
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning an Either

View File

@@ -4,7 +4,7 @@ import (
"bytes"
"net/http"
E "github.com/IBM/fp-go/either"
E "github.com/ibm/fp-go/either"
)
var (

View File

@@ -3,8 +3,8 @@ package either
import (
"log"
F "github.com/IBM/fp-go/function"
L "github.com/IBM/fp-go/logging"
F "github.com/ibm/fp-go/function"
L "github.com/ibm/fp-go/logging"
)
func _log[E, A any](left func(string, ...any), right func(string, ...any), prefix string) func(Either[E, A]) Either[E, A] {

View File

@@ -3,7 +3,7 @@ package either
import (
"testing"
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,8 +1,8 @@
package either
import (
F "github.com/IBM/fp-go/function"
RR "github.com/IBM/fp-go/internal/record"
F "github.com/ibm/fp-go/function"
RR "github.com/ibm/fp-go/internal/record"
)
// TraverseRecord transforms a record of options into an option of a record

View File

@@ -1,7 +1,7 @@
package either
import (
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
)
// constructs a function that creates a resource, then operates on it and then releases the resource

View File

@@ -4,7 +4,7 @@ import (
"os"
"testing"
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
"github.com/stretchr/testify/assert"
)

View File

@@ -3,9 +3,9 @@ package testing
import (
"testing"
ET "github.com/IBM/fp-go/either"
EQ "github.com/IBM/fp-go/eq"
L "github.com/IBM/fp-go/internal/monad/testing"
ET "github.com/ibm/fp-go/either"
EQ "github.com/ibm/fp-go/eq"
L "github.com/ibm/fp-go/internal/monad/testing"
)
// AssertLaws asserts the apply monad laws for the `Either` monad

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"testing"
EQ "github.com/IBM/fp-go/eq"
EQ "github.com/ibm/fp-go/eq"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,7 +1,7 @@
package either
import (
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
)
/*

View File

@@ -3,8 +3,8 @@ package either
import (
"testing"
F "github.com/IBM/fp-go/function"
O "github.com/IBM/fp-go/option"
F "github.com/ibm/fp-go/function"
O "github.com/ibm/fp-go/option"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,7 +1,7 @@
package eq
import (
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
)
type Eq[T any] interface {

View File

@@ -1,8 +1,8 @@
package eq
import (
M "github.com/IBM/fp-go/monoid"
S "github.com/IBM/fp-go/semigroup"
M "github.com/ibm/fp-go/monoid"
S "github.com/ibm/fp-go/semigroup"
)
func Semigroup[A any]() S.Semigroup[Eq[A]] {

View File

@@ -1,7 +1,7 @@
package testing
import (
EQ "github.com/IBM/fp-go/eq"
EQ "github.com/ibm/fp-go/eq"
"github.com/stretchr/testify/assert"
)

View File

@@ -3,7 +3,7 @@ package errors
import (
"errors"
O "github.com/IBM/fp-go/option"
O "github.com/ibm/fp-go/option"
)
// As tries to extract the error of desired type from the given error

View File

@@ -4,8 +4,8 @@ import (
"fmt"
"testing"
F "github.com/IBM/fp-go/function"
O "github.com/IBM/fp-go/option"
F "github.com/ibm/fp-go/function"
O "github.com/ibm/fp-go/option"
"github.com/stretchr/testify/assert"
)

View File

@@ -1,7 +1,7 @@
package errors
import (
F "github.com/IBM/fp-go/function"
F "github.com/ibm/fp-go/function"
)
var IdentityError = F.Identity[error]

View File

@@ -3,7 +3,7 @@ package errors
import (
"fmt"
A "github.com/IBM/fp-go/array"
A "github.com/ibm/fp-go/array"
)
// OnNone generates a nullary function that produces a formatted error

View File

@@ -1,7 +1,7 @@
package exec
import (
T "github.com/IBM/fp-go/tuple"
T "github.com/ibm/fp-go/tuple"
)
type (

2
go.mod
View File

@@ -1,4 +1,4 @@
module github.com/IBM/fp-go
module github.com/ibm/fp-go
go 1.20

Some files were not shown because too many files have changed in this diff Show More