OMeta object-oriented language for pattern-matching with Racket as a host