X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Generics%2FgCons.icl;h=07365e2724c0528a12eee95f032a4fdfa5acedcd;hb=de76c5f5ac6a0c4291b51d5b2c16e3611b5c99e3;hp=62caa2749f42bb323d76a0ee181cdc6c7ef193a8;hpb=9f93ff243f8ba2e1924e70df10978060a3b6f461;p=mTask.git diff --git a/Generics/gCons.icl b/Generics/gCons.icl index 62caa27..07365e2 100644 --- a/Generics/gCons.icl +++ b/Generics/gCons.icl @@ -106,3 +106,22 @@ conses{|{}|} _ = [{}] conses{|{!}|} _ = [{!}] conses{|(->)|} _ _ = [const undef] derive conses [],[!],[ !],[!!],(),(,),(,,),(,,,),(,,,,),(,,,,,),(,,,,,,),(,,,,,,,),(,,,,,,,,),(,,,,,,,,,),(,,,,,,,,,,),(,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,,),(,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) + +generic consNum a :: a -> Int +consNum{|CONS of {gcd_arity}|} f x = gcd_arity +consNum{|UNIT|} _ = 0 +consNum{|PAIR|} f _ (PAIR x y) = f x +consNum{|EITHER|} f _ (LEFT x) = f x +consNum{|EITHER|} _ g (RIGHT y) = g y +consNum{|OBJECT|} f (OBJECT x) = f x +consNum{|RECORD|} f (RECORD x) = f x +consNum{|FIELD|} f (FIELD x) = f x +consNum{|Int|} _ = 0 +consNum{|Bool|} _ = 0 +consNum{|Char|} _ = 0 +consNum{|Real|} _ = 0 +consNum{|String|} _ = 0 +consNum{|{}|} _ _ = 0 +consNum{|{!}|} _ _ = 0 +consNum{|(->)|} _ _ _ = 0 +derive consNum [],[!],[ !],[!!],(),(,),(,,),(,,,),(,,,,),(,,,,,),(,,,,,,),(,,,,,,,),(,,,,,,,,),(,,,,,,,,,),(,,,,,,,,,,),(,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,,),(,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)