| 47 | * @since 0.24.0 |
| 48 | */ |
| 49 | export const bindTo = <F extends TypeLambda>(F: Invariant<F>): { |
| 50 | <N extends string>( |
| 51 | name: N |
| 52 | ): <R, O, E, A>(self: Kind<F, R, O, E, A>) => Kind<F, R, O, E, { [K in N]: A }> |
| 53 | <R, O, E, A, N extends string>( |
| 54 | self: Kind<F, R, O, E, A>, |
| 55 | name: N |
| 56 | ): Kind<F, R, O, E, { [K in N]: A }> |
| 57 | } => |
| 58 | dual(2, <R, O, E, A, N extends string>( |
| 59 | self: Kind<F, R, O, E, A>, |
| 60 | name: N |
| 61 | ): Kind<F, R, O, E, { [K in N]: A }> => F.imap(self, (a) => ({ [name]: a } as any), ({ [name]: a }) => a)) |
| 62 | |
| 63 | /** |
| 64 | * Convert a value in a singleton array in a given effect. |