double :: Int -> Int double x = x + x md = double (1?2) -- Implementation of run-time choice: pass RTC arguments as functions: doubleRTC :: (() -> Int) -> Int doubleRTC x = x () + x () mdRTC = doubleRTC (\() -> 1?2)