1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use super::{
traits::RecApp,
types::RecX,
};
pub fn fix<C, F>(x: F::Applied) -> RecX<C, F>
where
C: Send + 'static,
F: Send + 'static,
F: RecApp<(RecX<C, F>, C)>,
{
RecX { unfix: Box::new(x) }
}
pub fn unfix<C, F>(x: RecX<C, F>) -> F::Applied
where
C: Send + 'static,
F: Send + 'static,
F: RecApp<(RecX<C, F>, C)>,
{
*x.unfix.get_applied()
}