params = $params; } public static function params( array $params ) { return new self( $params ); } public function withBody( string $content ) { $this->content = $content; return $this; } public function withBlock( string $content ) { $this->content = '{ ' . $content . ' }'; return $this; } public function __toString(): string { array_walk( $this->params, function ( &$value, $key ) { if ( is_string( $key ) ) { $value = $key . ' = ' . new Type( $value ); } } ); return '(' . implode( ', ', $this->params ) . ') => ' . $this->content; } }