github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/4-purely-functional/ch10-monads/05_typeclasss/main.go (about) 1 package main 2 3 import ( 4 "typeclass" 5 "fmt" 6 ) 7 8 func main() { 9 int42 := typeclass.Int(42) 10 str42 := typeclass.String("42") 11 fmt.Println("str42.Equals(int42):", str42.Equals(int42)) 12 13 int64One := typeclass.Int64(1) 14 int64Two := typeclass.Int64(2) 15 fmt.Println("int64Two.Sum(int64One):", int64Two.Sum(int64One)) 16 17 int32One := typeclass.Int32(1) 18 fmt.Println("int32One.Sum(int64One):", int32One.Sum(int64One)) 19 20 float32Five := typeclass.Float32(5) 21 fmt.Println("int32One.Sum(int64One):", float32Five.Sum(int64One)) 22 23 int64Slice123 := typeclass.IntSlice([]int{1, 2, 3}) 24 int64Slice234 := typeclass.IntSlice([]int{2, 3, 4}) 25 fmt.Println("int64Slice123.Sum(int64Slice234):", int64Slice123.Sum(int64Slice234)) 26 }