#lang racket (require (for-syntax syntax/parse)) (define-syntax (type-case stx) (syntax-parse stx [(_ a:str) #'"string"] [(_ a:number) #'"number"] [(_ a:identifier) #'"id"])) (type-case "a") (type-case 2) (type-case c)