# HG changeset patch # User wenzelm # Date 1630012996 -7200 # Node ID 5f0f0553762fd70c4747e289f1528ede32bd2540 # Parent c832f35ea57158c6cc9b024bb9d58ac6985b1e5d proper test for type constructor; diff -r c832f35ea571 -r 5f0f0553762f src/Tools/Haskell/Haskell.thy --- a/src/Tools/Haskell/Haskell.thy Thu Aug 26 22:25:35 2021 +0200 +++ b/src/Tools/Haskell/Haskell.thy Thu Aug 26 23:23:16 2021 +0200 @@ -2332,21 +2332,21 @@ type_op0 name = (mk, is) where mk = Type (name, []) - is (Type (name, _)) = True + is (Type (c, _)) = c == name is _ = False type_op1 :: Name -> (Typ -> Typ, Typ -> Maybe Typ) type_op1 name = (mk, dest) where mk ty = Type (name, [ty]) - dest (Type (name, [ty])) = Just ty + dest (Type (c, [ty])) | c == name = Just ty dest _ = Nothing type_op2 :: Name -> (Typ -> Typ -> Typ, Typ -> Maybe (Typ, Typ)) type_op2 name = (mk, dest) where mk ty1 ty2 = Type (name, [ty1, ty2]) - dest (Type (name, [ty1, ty2])) = Just (ty1, ty2) + dest (Type (c, [ty1, ty2])) | c == name = Just (ty1, ty2) dest _ = Nothing op0 :: Name -> (Term, Term -> Bool)