diff options
Diffstat (limited to 'lib/kernel')
| -rw-r--r-- | lib/kernel/EphemeralRelation.ml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/kernel/EphemeralRelation.ml b/lib/kernel/EphemeralRelation.ml index 8e2d2e4..4947869 100644 --- a/lib/kernel/EphemeralRelation.ml +++ b/lib/kernel/EphemeralRelation.ml @@ -138,7 +138,9 @@ module Make (D : DERIVATION) = struct let derive ?pinned ?(edges = []) plan = let open Utilities.Result in - let* declaration = D.modes plan in + let* declaration = + D.modes plan |> Result.map_error (fun c -> List.iter Protocols.Handle.release edges; c) + in Ok ( new ephemeral plan (identity ?pinned plan) declaration (exhaustible declaration BatSet.String.empty) edges |> Protocols.Handle.make ) |
