-module(pears). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([parse/2, parse_string/2, ok/2]). -export_type([parsed/2, parse_error/1]). -type parsed(FKF, FKG) :: {parsed, list(FKF), FKG}. -type parse_error(FKH) :: {parse_error, list(FKH), list(binary())}. -spec parse( list(FKU), fun((list(FKU)) -> {ok, parsed(FKU, FKW)} | {error, parse_error(FKU)}) ) -> {ok, parsed(FKU, FKW)} | {error, parse_error(FKU)}. parse(I, P) -> P(I). -spec parse_string( binary(), fun((list(binary())) -> {ok, parsed(binary(), FLB)} | {error, parse_error(binary())}) ) -> {ok, parsed(binary(), FLB)} | {error, parse_error(binary())}. parse_string(I, P) -> _pipe = I, _pipe@1 = gleam@string:to_graphemes(_pipe), parse(_pipe@1, P). -spec ok(list(FLG), FLI) -> {ok, parsed(FLG, FLI)} | {error, parse_error(FLG)}. ok(Input, Value) -> {ok, {parsed, Input, Value}}.