// Export all types
export type {
  Success,
  Failure,
  Result,
  TaggedError,
  ResultWithDefault,
  MaybePromise,
  GoTryAllOptions,
  ErrorConstructor,
  TaggedUnion,
  GoTryRawOptions,
  GoTryAllRawOptions,
} from './types.js'

// Export core functions
export { goTry } from './goTry.js'
export { goTryRaw } from './goTryRaw.js'
export { goTryOr } from './goTryOr.js'
export { goTryAll, goTryAllRaw } from './goTryAll.js'

// Export helper functions
export { taggedError } from './tagged-error.js'
export { assert } from './assert.js'
export { ensure } from './ensure.js'
export { isSuccess, isFailure, success, failure, assertNever } from './result-helpers.js'

// Export UnknownError tagged error
export { UnknownError } from './unknown-error.js'

// Export go aliases
export { go, goAll, goElse } from './go.js'
