diff --git a/examples/acceptance_tests/012/aiken.toml b/examples/acceptance_tests/012/aiken.toml
new file mode 100644
index 00000000..ed8f7704
--- /dev/null
+++ b/examples/acceptance_tests/012/aiken.toml
@@ -0,0 +1,2 @@
+name = "acceptance_test_012"
+version = "0.0.0"
diff --git a/examples/acceptance_tests/012/lib/test.ak b/examples/acceptance_tests/012/lib/test.ak
new file mode 100644
index 00000000..b0a781e3
--- /dev/null
+++ b/examples/acceptance_tests/012/lib/test.ak
@@ -0,0 +1,18 @@
+use aiken/builtin
+
+pub fn filter(xs: List, f: fn(a) -> Bool) -> List {
+ when xs is {
+ [] -> []
+ [x, ..rest] ->
+ if f(x) {
+ [x, ..filter(rest, f)]
+ } else {
+ filter(rest, f)
+ }
+ }
+}
+
+test filter_1() {
+ filter([1,
+ 2, 3, 4, 5, 6], fn(x) { builtin.mod_integer(x, 2) == 0 }) == [2, 4, 6]
+}