From e9456cb231725d65a9cdd11dc3d4549fe7254e06 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 16 Aug 2008 14:45:23 -0400 Subject: Explifying type classes --- src/expl_util.sml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/expl_util.sml') diff --git a/src/expl_util.sml b/src/expl_util.sml index ef82af44..a90e6bed 100644 --- a/src/expl_util.sml +++ b/src/expl_util.sml @@ -57,6 +57,11 @@ fun mapfold f = (KRecord k', loc)) | KUnit => S.return2 kAll + + | KTuple ks => + S.map2 (ListUtil.mapfold mfk ks, + fn ks' => + (KTuple ks', loc)) in mfk end @@ -148,6 +153,16 @@ fun mapfoldB {kind = fk, con = fc, bind} = (CFold (k1', k2'), loc))) | CUnit => S.return2 cAll + + | CTuple cs => + S.map2 (ListUtil.mapfold (mfc ctx) cs, + fn cs' => + (CTuple cs', loc)) + + | CProj (c, n) => + S.map2 (mfc ctx c, + fn c' => + (CProj (c', n), loc)) in mfc end -- cgit v1.2.3