<div dir="ltr"><div>Hi all,</div><div><br></div><div>I'm trying to check that the Applicative laws hold for the function type <font face="monospace, monospace">((->) r)</font>, and here's what I have so far:</div><div><br></div><div><font face="monospace, monospace">-- Identiy</font></div><div><font face="monospace, monospace">pure (id) <*> v = v</font></div><div><font face="monospace, monospace">pure (id) <*> v</font></div><div><font face="monospace, monospace">const id <*> v</font></div><div><font face="monospace, monospace">(\x -> const id x (g x))</font></div><div><font face="monospace, monospace">(\x -> id (g x))</font></div><div><font face="monospace, monospace">(\x -> g x)</font></div><div><font face="monospace, monospace">g x</font></div><div><font face="monospace, monospace">v</font></div><div><br></div><div><br></div><div><font face="monospace, monospace">-- Homomorphism</font></div><div><font face="monospace, monospace">pure f <*> pure x = pure (f x)</font></div><div><font face="monospace, monospace">pure f <*> pure x</font></div><div><font face="monospace, monospace">const f <*> const x</font></div><div><font face="monospace, monospace">(\y -> const f y (const x y))</font></div><div><font face="monospace, monospace">(\y -> f (x))</font></div><div><font face="monospace, monospace">(\_ -> f x)</font></div><div><font face="monospace, monospace">pure (f x)</font></div><div><br></div><div><br></div><div>Did I perform the steps for the first two laws correctly?</div><div><br></div><div>I'm struggling with the interchange & composition laws. For interchange, so far I have the following:</div><div><br></div><div><font face="monospace, monospace">-- Interchange</font></div><div><font face="monospace, monospace">u <*> pure y = pure ($y) <*> u</font></div><div><font face="monospace, monospace">u <*> pure y</font></div><div><font face="monospace, monospace">u <*> const y</font></div><div><font face="monospace, monospace">(\x -> g x (const y x))</font></div><div><font face="monospace, monospace">(\x -> g x y)</font></div><div><font face="monospace, monospace">-- I'm not sure how to proceed beyond this point.</font></div><div><br></div><div><br></div><div>I would appreciate any help for the steps to verify the Interchange & Composition applicative laws for the <font face="monospace, monospace">((->) r)</font> type.</div><div><br></div><div>Thank you,</div><div>~Umair</div></div>