*/ class class_function implements interface_term { /** * @var string * @author Christian Fraß */ public $head; /** * @var list * @author Christian Fraß */ public $arguments; /** * @param string $head * @param list $arguments * @author Christian Fraß */ public function __construct( string $head, array $arguments = [] ) { $this->head = $head; $this->arguments = $arguments; } /** * @implementation * @author Christian Fraß */ public function clone_( ) : interface_term { return ( new class_function( $this->head, \alveolata\list_\map( $this->arguments, function ($argument) {return $argument->clone_();} ) ) ); } }