X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=tests%2Forg.simantics.scl.compiler.tests%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftests%2Fscl%2FInstanceHierarchy.scl;fp=tests%2Forg.simantics.scl.compiler.tests%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftests%2Fscl%2FInstanceHierarchy.scl;h=1c751f397febd1f8fa59ec90fb19b3777c3f14b7;hb=0364f8f54b009e9e5de482d5c9d1cb7efb023141;hp=0000000000000000000000000000000000000000;hpb=7ecf07ff9aacab300f1fb900f1f0f97beb1be139;p=simantics%2Fplatform.git diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/InstanceHierarchy.scl b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/InstanceHierarchy.scl new file mode 100644 index 000000000..1c751f397 --- /dev/null +++ b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/InstanceHierarchy.scl @@ -0,0 +1,26 @@ +import "Prelude" hiding (zero, one) + +class MyAdditive a where + zero :: a + +class (MyAdditive a) => MyRing a where + one :: a + +instance MyAdditive Integer where + zero = 0 + +instance MyRing Integer where + one = 1 + +data Poly a = Poly [a] + +instance (MyAdditive a) => MyAdditive (Poly a) where + zero = Poly [] + +instance (MyRing a) => MyRing (Poly a) where + one = Poly [one] + +main :: Poly Integer +main = one +-- +[1] \ No newline at end of file