Jak jste s tím daleko?
toto píše programátor, ne matematik, připomínky vítány
lift je operace která umožňuje aplikovat původní funkci v novém prostředí
resp. aplikace funkce je řízena vnitřnostma (např.) monády
funkce která něco liftuje má zhruba tento tvar:
lift :: (t0 -> ... -> tn -> y) -> g t0 ... tn y
typy vlevo se liftem neztratí a opakují se napravo
a má se chovat se tak že:
lift (f (a0..an)) == (lift f) (lift a0) .. (lift an)
(Moggi, haddocky)
to jest liftnutá hodnota funkce aplikované na argumenty je stejná jako výsledek aplikace liftnuté funkce na liftnuté argumenty
např.
increment x = x + 1
return (increment 2) == (fmap increment) (return 2)