-module(fp2@models). -compile(no_auto_import). -export_type([semigroup/1, ord/1, monoid/1]). -type semigroup(ELM) :: {semigroup, fun((ELM, ELM) -> ELM)}. -type ord(ELN) :: {ord, fun((ELN, ELN) -> gleam@order:order())}. -type monoid(ELO) :: {monoid, fun((ELO, ELO) -> ELO), ELO}.