
Anyone know how to fix the following type error is translated code? Hat/MySet.hs:636:60: Couldn't match `Hat.Hat.R (Hat.Hat.List a)' against `Hat.Hat.RefExp' Expected type: Hat.Hat.R (Hat.Hat.Fun a b2) -> Hat.Hat.RefExp -> Hat.Hat.R (Hat.Hat.Fun b1 (Hat.Hat.List b)) Inferred type: Hat.Hat.R (Hat.Hat.Fun a b2) -> Hat.Hat.R (Hat.Hat.List a) -> Hat.Hat.RefExp -> Hat.Hat.R (Hat.Hat.List b2) In the fifth argument of `Hat.Hat.app1', namely `Hat.PreludeBasic.hmap' In the fourth argument of `Hat.Hat.ap2', namely `(Hat.Hat.app1 p391v20v391v29 p391v20v391v27 p Hat.PreludeBasic.amap Hat.PreludeBasic.hmap ff)' The original code looks like this (and does not cause type errors when compiled normally). map :: (Ord a, Ord b) => (a->b) -> Set a -> Set b map f = fromList . List.map f . toList The translated code looks like this: gmap :: (Ord a,Ord b) => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun a b) (T.Fun (Set a) (Set b))) hmap :: (Ord a,Ord b) => (T.R (T.Fun a b)) -> T.RefExp -> T.R (T.Fun (Set a) (Set b)) gmap pmap p = T.fun1 amap pmap p hmap hmap ff p = T.ap2 p391v9v391v38 p (p391v18v391v18 !. p) (gfromList p391v9v391v16 p) (T.ap2 p391v20v391v38 p (p391v31v391v31 !. p) 636 > (T.app1 p391v20v391v29 p391v20v391v27 p Hat.List.amap Hat.List.hmap ff) (gtoList p391v33v391v38 p)) I have not a clue what I'm up to when it gets this fun. Bob