class Keyable a where Key a -> String class Keyable a => IResource abs instance (Keyable a, Serialize a) => IResource a data forall a.(Keyable a, Serialize a) => IDynamic a como ahorrar espacio usando Dynamic cuand se serializa, RefSerialize va buscando en un map de direcciones de objetos, si encuentra esa direccion usada, apunta hacia ella. Los Dynamic ocultan eso. como hacer para que se vean? now <- whenThisHappened let x= now + delay waitForFIFO xs >>= Just `orElse` waitUntil x >> Nothing waitUntil:: Integer -> STM() waitUntil t= do threadDelay $ delay* 1000000 if t - tnow <= 0 then return () else retry where delay | t-tnow >interval = interval | otherwise = t - tnow