DNU6TYDJ7M3S62NXVOSK5TR4Q77SQRAS4T2VFLZALFIR2JARYS7QC public exportApplicative Optional wherepure = SomeNothing <*> _ = Nothing_ <*> Nothing = Nothing(Some f) <*> (Some x) = Some $ f xproofIdentity Nothing = ReflproofIdentity (Some x) = ReflproofComposition Nothing Nothing _ = ReflproofComposition Nothing (Some g) _ = ReflproofComposition (Some f) Nothing _ = ReflproofComposition (Some f) (Some g) Nothing = ReflproofComposition (Some f) (Some g) (Some x) = ReflproofHomomorphism f x = ReflproofInterchange Nothing x = ReflproofInterchange (Some f) x = Refl