X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Ftests%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftests%2Fscl%2FTypeClass2.scl;fp=bundles%2Forg.simantics.scl.compiler%2Ftests%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftests%2Fscl%2FTypeClass2.scl;h=5bd09350bdbe15617361fd6ce12b92c908d9bb9f;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClass2.scl b/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClass2.scl new file mode 100644 index 000000000..5bd09350b --- /dev/null +++ b/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/TypeClass2.scl @@ -0,0 +1,28 @@ +import "JavaBuiltin" as Java + +(+) = Java.iadd + +class Foo a where + foo :: a -> Integer + /* +class (Foo a) => Bar a where + bar :: a -> Integer + */ +instance Foo Integer where + foo x = x+1 + /* +instance Bar Integer where + bar x = x+2 +*/ +data X a = X a + +instance (Foo a) => Foo (X a) where + foo (X a) = foo a + /* +instance (Bar a) => Bar (X a) where + bar (X a) = bar a*/ + +main = foo (X (1 :: Integer)) +// + bar (X (2 :: Integer)) +-- +2 \ No newline at end of file