[Hat] Any guesses?
Thomas Davie
tom.davie at gmail.com
Sat Oct 29 20:50:29 EDT 2005
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
More information about the Hat
mailing list