Skip to content

Instantly share code, notes, and snippets.

@davidgrenier
Created August 5, 2014 13:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidgrenier/d42817c778208ba20341 to your computer and use it in GitHub Desktop.
Save davidgrenier/d42817c778208ba20341 to your computer and use it in GitHub Desktop.
type T = T with
static member (<@>) (x, y: int) = x * y
static member (<@>) (x, y: float) = x * int y
let inline helper (_: ^o) (left: ^t) (right: ^u) = ((^o or ^t): (static member (<@>): ^t * ^u -> int) (left, right))
let inline (<@>) left right = helper T left right
1 <@> 2
1 <@> 2.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment