// -----------------------------------------------------------------------
// Public type facade for `moonbitlang/quickcheck`.
//
// The property/testable core now lives in
// `moonbitlang/quickcheck/property`; root keeps these re-exports so
// existing callers can keep using the familiar `@quickcheck.*` surface.
// -----------------------------------------------------------------------
///|
/// Re-export the `Shrink` trait so existing callers can keep writing
/// `@quickcheck.Shrink` after the trait's definition moved to the
/// `moonbitlang/quickcheck/shrink` subpackage.
pub using @shrink {trait Shrink}
///|
/// Re-export `Expected` from `internal/state` so the public driver
/// API (`quick_check(..., expect=Fail)`) stays spelled as
/// `@quickcheck.Expected` even though the enum now lives in the
/// internal package alongside the rest of the driver state.
pub using @state {type Expected}
///|
/// Re-export property/testable types from the lower-level property
/// package.
pub using @property {
type Arrow,
type ArrowError,
type ArrowAsync,
type Discard,
type Property,
trait Testable,
}
///|
/// Re-export the property DSL from `moonbitlang/quickcheck/property`.
pub using @property {
callback,
classify,
collect,
counterexample,
filter,
forall,
forall_shrink,
if_fail,
label,
map_size,
property,
shrinking,
}