functor (Local : LOCAL-> sig val opti : Local.user_data -> Local.result end