<===> input.scss
// Content blocks' argument lists can define arguments in in all the same ways
// as they're defined in any other argument list.

with-defaults {
  nothing-passed {
    @mixin mixin {
      @content;
    }

    @include mixin using ($arg1: value1, $arg2: value2) {
      arg1: $arg1;
      arg2: $arg2;
    }
  }

  partial-override {
    @mixin mixin {
      @content($arg2: other2);
    }

    @include mixin using ($arg1: value1, $arg2: value2) {
      arg1: $arg1;
      arg2: $arg2;
    }
  }

  total-override {
    @mixin mixin {
      @content(other1, other2);
    }

    @include mixin using ($arg1: value1, $arg2: value2) {
      arg1: $arg1;
      arg2: $arg2;
    }
  }
}

with-splat {
  nothing-passed {
    @mixin mixin {
      @content;
    }

    @include mixin using ($args...) {
      positional: inspect($args);
      keywords: inspect(keywords($args));
    }
  }

  positional-passed {
    @mixin mixin {
      @content(value1, value2, value3);
    }

    @include mixin using ($args...) {
      positional: inspect($args);
      keywords: inspect(keywords($args));
    }
  }

  named-passed {
    @mixin mixin {
      @content($arg1: value1, $arg2: value2);
    }

    @include mixin using ($args...) {
      positional: inspect($args);
      keywords: inspect(keywords($args));
    }
  }

  both-passed {
    @mixin mixin {
      @content(value1, $arg2: value2);
    }

    @include mixin using ($args...) {
      positional: inspect($args);
      keywords: inspect(keywords($args));
    }
  }
}

<===> output.css
with-defaults nothing-passed {
  arg1: value1;
  arg2: value2;
}
with-defaults partial-override {
  arg1: value1;
  arg2: other2;
}
with-defaults total-override {
  arg1: other1;
  arg2: other2;
}

with-splat nothing-passed {
  positional: ();
  keywords: ();
}
with-splat positional-passed {
  positional: value1, value2, value3;
  keywords: ();
}
with-splat named-passed {
  positional: ();
  keywords: (arg1: value1, arg2: value2);
}
with-splat both-passed {
  positional: (value1,);
  keywords: (arg2: value2);
}

<===> output-libsass.css
with-defaults nothing-passed {
  arg1: value1;
  arg2: value2;
}
with-defaults partial-override {
  arg1: value1;
  arg2: other2;
}
with-defaults total-override {
  arg1: other1;
  arg2: other2;
}

with-splat nothing-passed {
  positional: ();
  keywords: ();
}
with-splat positional-passed {
  positional: value1, value2, value3;
  keywords: ();
}
with-splat named-passed {
  keywords: (arg1: value1, arg2: value2);
}
with-splat both-passed {
  positional: value1;
  keywords: (arg2: value2);
}