Defining new types

Functions for defining new types and the constructors that go with them.

`:=`()

Define a new data type from a sequence of constructors.

Pattern matching

Functions for matching constructed values against patterns.

bind

Dummy object used for generic function dispatching.

test_pattern_() test_pattern()

Test if a pattern matches an expression

Function rewriting

Functionality for rewriting functions that use pattern matching.

bind

Dummy object used for generic function dispatching.

case_func()

Creates a pattern matching function.

case_trfunc()

Creates a pattern matching function for tail-recursive functions.

`:=`()

Define a new data type from a sequence of constructors.

construction_printer()

Print a constructed value

copy_env()

Move the bound variables from one environment into another.

deparse_construction()

Create a string representation from a constructed object

process_alternatives()

Goes through a list of |-separated expressions and define them as constructors

process_arg()

Build a tibble form a list of constructor arguments.

process_arguments()

Construct a tibble from all the arguments of a constructor

process_constructor()

Create a constructor and put it in an environment.

process_constructor_constant()

Create a constant constructor and put it in an environment.

process_constructor_function()

Create a function constructor and put it in an environment.

`[<-`(<pmatch_bind>)

Bind variables to pattern-matched expressions.

test_pattern_() test_pattern()

Test if a pattern matches an expression

test_pattern_rec()

Recursive comparison of expression and pattern.