Index: src/tests/function-operator.c
===================================================================
--- src/tests/function-operator.c	(revision fbcb35488c190b8e3845a1a9572c9c931586897f)
+++ src/tests/function-operator.c	(revision 7d9ad5105204afdaad7a364730846582b8a47251)
@@ -128,4 +128,16 @@
 }
 
+// TODO: generalize to ttype return; doesn't work yet
+// like std::function
+forall(otype Return, ttype Args)
+struct function {
+  Return (*f)(Args);
+};
+// TODO: missing adapter in these functions
+// // value, reference, pointer operators
+// forall(otype Return, ttype Args) Return ?()(function(Return, Args) func, Args args) { return func.f(args); }
+// forall(otype Return, ttype Args) Return ?()(function(Return, Args) & func, Args args) { return func.f(args); }
+// forall(otype Return, ttype Args) Return ?()(function(Return, Args) * func, Args args) { return func->f(args); }
+
 int main() {
 	// generate for array fill
