Main1.hx 336 B

12345678910111213141516171819202122
  1. enum FmtOption<A> {
  2. FixedPrecision:FmtOption<A>;
  3. }
  4. enum Fmt<A,B> {
  5. Opt<C>(opt:FmtOption<C>):Fmt<A,C>;
  6. }
  7. class Main {
  8. static public function main() {
  9. }
  10. static function eval<A, B>(fmt:Fmt<A, B>, f:String -> A):B {
  11. return switch (fmt) {
  12. case Opt(FixedPrecision):
  13. $type(fmt);
  14. var r =f("");
  15. $type(f);
  16. r;
  17. }
  18. }
  19. }