diff options
Diffstat (limited to 'KeyRing.hs')
-rw-r--r-- | KeyRing.hs | 61 |
1 files changed, 0 insertions, 61 deletions
@@ -2319,64 +2319,3 @@ backsig _ = Nothing | |||
2319 | socketFamily (SockAddrInet _ _) = AF_INET | 2319 | socketFamily (SockAddrInet _ _) = AF_INET |
2320 | socketFamily (SockAddrInet6 _ _ _ _) = AF_INET6 | 2320 | socketFamily (SockAddrInet6 _ _ _ _) = AF_INET6 |
2321 | socketFamily (SockAddrUnix _) = AF_UNIX | 2321 | socketFamily (SockAddrUnix _) = AF_UNIX |
2322 | |||
2323 | |||
2324 | |||
2325 | {-----------------------------------------------} | ||
2326 | |||
2327 | |||
2328 | {- | ||
2329 | data Kiki a = | ||
2330 | SinglePass (KeyRingOperation -> KeyRingAction a) | ||
2331 | | forall b. MultiPass (KeyRingOperation -> KeyRingAction b) | ||
2332 | (Kiki (b -> a)) | ||
2333 | |||
2334 | fmapWithRT :: (KeyRingRuntime -> a -> b) -> Kiki a -> Kiki b | ||
2335 | fmapWithRT g (SinglePass pass) = SinglePass pass' | ||
2336 | where | ||
2337 | pass' kd = case pass kd of | ||
2338 | KeyRingAction v -> RunTimeAction (\rt -> g rt v) | ||
2339 | RunTimeAction f -> RunTimeAction (\rt -> g rt (f rt)) | ||
2340 | fmapWithRT g (MultiPass pass0 k) = MultiPass pass0 k' | ||
2341 | where | ||
2342 | k' = fmapWithRT (\rt f -> g rt . f) k | ||
2343 | |||
2344 | instance Functor Kiki where fmap f k = fmapWithRT (const f) k | ||
2345 | |||
2346 | instance Monad Kiki where | ||
2347 | return x = SinglePass (const $ KeyRingAction x) | ||
2348 | |||
2349 | k >>= f = eval' $ fmapWithRT (\rt x -> eval rt (f x)) k | ||
2350 | where (.:) = (.) . (.) | ||
2351 | |||
2352 | eval :: KeyRingRuntime -> Kiki a -> KeyRingOperation -> a | ||
2353 | eval rt (SinglePass f) kd = | ||
2354 | case f kd of KeyRingAction v -> v | ||
2355 | RunTimeAction g -> g rt | ||
2356 | eval rt (MultiPass p kk) kd = eval rt kk kd $ eval rt (SinglePass p) kd | ||
2357 | |||
2358 | eval' :: Kiki (KeyRingOperation -> a) -> Kiki a | ||
2359 | eval' k@(SinglePass pass) = SinglePass pass' | ||
2360 | where | ||
2361 | pass' kd = case pass kd of | ||
2362 | KeyRingAction f -> KeyRingAction (f kd) | ||
2363 | RunTimeAction g -> RunTimeAction (\rt -> g rt kd) | ||
2364 | eval' k@(MultiPass p kk) = MultiPass p kk' | ||
2365 | where | ||
2366 | kk' = fmap flip kk | ||
2367 | |||
2368 | -} | ||
2369 | |||
2370 | |||
2371 | |||
2372 | {- | ||
2373 | fmapWithRT g (SinglePass d@(KeyRingOperation { kAction = KeyRingAction v})) | ||
2374 | = SinglePass $ d { kAction = RunTimeAction (\rt -> g rt v) } | ||
2375 | fmapWithRT g (SinglePass d@(KeyRingOperation { kAction = RunTimeAction f})) | ||
2376 | = SinglePass $ d { kAction = RunTimeAction f' } | ||
2377 | where f' rt = g rt (f rt) | ||
2378 | fmapWithRT g (MultiPass p kk) = MultiPass p (fmapWithRT g' kk) | ||
2379 | where g' rt h = g rt . h | ||
2380 | -} | ||
2381 | |||
2382 | |||