@@ -329,8 +329,7 @@ transformExpression :: Type -> Type -> Maybe (Value -> Value)
329329transformExpression from to =
330330 case transformTerm inner defaultValue from to of
331331 Nothing -> Nothing
332- Just f -> Just $ \ ta ->
333- f (error " QueryRegs are never used in transformExpression" ) discard ta id
332+ Just f -> Just $ \ ta -> f () discard ta id
334333 where
335334 inner _ _ _ _ _ a f = f a
336335 discard _ _ = return ()
@@ -415,8 +414,8 @@ transformMatch syscalls discard from to overTerm match = case match of
415414 run :: forall x . Cont (Code x ) () -> Code ()
416415 run m = void $ runCont m (\ () -> return undefined )
417416
418- type TransformTerm m a b
419- = QueryRegs
417+ type TransformTerm m qr a b
418+ = qr
420419 -> (Type -> Term a -> m () ) -- ^ discard term
421420 -> Term a -- ^ source term
422421 -> m (Term b )
@@ -427,8 +426,8 @@ type TransformTerm m a b
427426-- these two cases we will handle default values and discarded records fields
428427-- differently so we take those handling functions as input.
429428transformTerm
430- :: forall a b m . (Coercible a b , Show a , Show b , Monad m )
431- => ( QueryRegs
429+ :: forall a b qr m . (Coercible a b , Show a , Show b , Monad m )
430+ => ( qr
432431 -> (Type -> a -> m () ) -- discard inner value
433432 -> Type -- from type
434433 -> Type -- to type
@@ -438,7 +437,7 @@ transformTerm
438437 -> (Type -> Term b ) -- ^ default value for type
439438 -> Type -- ^ from type
440439 -> Type -- ^ to type
441- -> Maybe (TransformTerm m a b )
440+ -> Maybe (TransformTerm m qr a b )
442441transformTerm inner defaultForType src dst = go src dst
443442 where
444443 -- Types are the same. No transformation is required
@@ -451,13 +450,13 @@ transformTerm inner defaultForType src dst = go src dst
451450 transformationsFor
452451 :: [RTS. FieldDef ]
453452 -> [RTS. FieldDef ]
454- -> Map Text (Maybe (Word64 , TransformTerm m a b ))
453+ -> Map Text (Maybe (Word64 , TransformTerm m qr a b ))
455454 transformationsFor from to =
456455 Map. intersectionWith trans fromFields toFields
457456 where
458457 trans :: (Word64 , Type )
459458 -> (Word64 , Type )
460- -> Maybe (Word64 , TransformTerm m a b )
459+ -> Maybe (Word64 , TransformTerm m qr a b )
461460 trans (ixFrom, defFrom) (ixTo, defTo) =
462461 case go defFrom defTo of
463462 -- fields are identical
@@ -475,7 +474,7 @@ transformTerm inner defaultForType src dst = go src dst
475474 toFields = Map. fromList $ flip map (zip to [0 .. ])
476475 $ \ (FieldDef name def, ix) -> (name, (ix, def))
477476
478- go :: Type -> Type -> Maybe (TransformTerm m a b )
477+ go :: Type -> Type -> Maybe (TransformTerm m qr a b )
479478 go from@ (NamedTy _ _) to = go (derefType from) to
480479 go from to@ (NamedTy _ _) = go from (derefType to)
481480 go ByteTy ByteTy = Nothing
0 commit comments