Module aya.base

Interface Pat

All Superinterfaces:
AyaDocile
All Known Implementing Classes:
Pat.Absurd, Pat.Bind, Pat.Ctor, Pat.Meta, Pat.ShapedInt, Pat.Tuple

public sealed interface Pat extends AyaDocile permits Pat.Meta, Pat.Bind, Pat.Absurd, Pat.Tuple, Pat.Ctor, Pat.ShapedInt
Patterns in the core syntax.
  • Method Details

    • descent

      @NotNull @NotNull Pat descent(@NotNull @NotNull UnaryOperator<Pat> f, @NotNull @NotNull UnaryOperator<Term> g)
    • toTerm

      @NotNull default @NotNull Term toTerm()
    • toDoc

      @NotNull default @NotNull org.aya.pretty.doc.Doc toDoc(@NotNull @NotNull org.aya.util.prettier.PrettierOptions options)
      Specified by:
      toDoc in interface AyaDocile
    • zonk

      @NotNull @NotNull Pat zonk(@NotNull @NotNull ConcreteAwareTycker tycker)
    • inline

      @NotNull @NotNull Pat inline(@Nullable @Nullable LocalCtx ctx)
      Make sure you are inline all patterns in order
      Parameters:
      ctx - when null, the solutions will not be inlined
      Returns:
      inlined patterns
    • storeBindings

      void storeBindings(@NotNull @NotNull LocalCtx ctx, @NotNull @NotNull Subst rhsSubst)
    • extractTele

      @NotNull static @NotNull kala.collection.immutable.ImmutableSeq<Term.Param> extractTele(@NotNull @NotNull kala.collection.SeqLike<Pat> pats)