summaryrefslogtreecommitdiff
path: root/fp1/week2/camil/VectorOverloading.dcl
blob: 76f8520a642915707eb0c3b4281de7b26df52971 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
definition module VectorOverloading

import StdEnv

:: Vector2 a = {x0 :: a, x1 :: a}

instance ==   (Vector2 a) | == a
instance zero (Vector2 a) | zero a
instance one  (Vector2 a) | one a
instance ~    (Vector2 a) | ~ a
instance +    (Vector2 a) | + a
instance -    (Vector2 a) | - a
instance *    (Vector2 a) | * a
instance /    (Vector2 a) | / a