threading.rkt (742B)
1 #lang typed/racket 2 (require "typed-untyped.rkt") 3 (define-typed/untyped-modules #:no-test 4 ;; raco pkg install alexis-util 5 ;; or: 6 ;; raco pkg install threading 7 (require alexis/util/threading 8 (for-syntax racket/syntax 9 syntax/parse)) 10 11 (define-syntax-rule (~>_ clause ... expr) (~> expr clause ...)) 12 (define-syntax (<~ stx) 13 (syntax-parse stx 14 [(_ expr clause ...) 15 (define/with-syntax (r-clause ...) 16 (reverse (syntax->list #'(clause ...)))) 17 #'(~> expr r-clause ...)])) 18 19 (define-syntax-rule (<~_ clause ... expr) (<~ expr clause ...)) 20 21 (provide <~ <~_ ~>_ 22 (rename-out [_ ♦] [<~_ <~♦] [~>_ ~>♦]) 23 (all-from-out alexis/util/threading)))