DR>public static @|> (a : 'p1, fac : 'p1 -> 'r) : 'r DR>{ DR> fac(a) DR>} DR>public static @|> (a : 'p1, fac : 'p1 -> void) : void DR>{ DR> fac(a) DR>} DR>