val foo3 : (#a:Type) -> {| _ : additive a |} -> (x:a) -> (y:a) -> Tot a
val foo3 : (#a:Type) -> {| _ : additive a |} -> (x:a) -> (y:a) -> Tot a
let foo3 (#a:Type) {|additive a|} (x y : a) : Tot a = plus x y
module SyntaxTests

open Add

let foo  (#a:Type) {|additive a|} (x y : a) : Tot a = plus x y

let foo2 (#a:Type) {|additive a|} (x y : a) : Tot a = plus x y
/
prims.fst.checked FStar.Tactics.Typeclasses.fsti.checked FStar.Pervasives.fsti.checked Add.fst.checked
SyntaxTests.fst
{| _: Add.additive a |} -> x: a -> y: a -> a
Add.additive Add.plus
let foo3 (#a: Type) {| _: additive a |} (x y: a) : Tot a =
  
plus x y