4WZ2PYVOKVZFB6Q44LR6APOSMZTUR566HI5IOFLDCA5C7RQRMFRAC public exportMonad LinkedList wherebind Nil _ = Nilbind (x::xs) f = f x <> (xs `bind` f)proofLeftIdentity x f = rewrite concatNil (f x) in ReflproofRightIdentity Nil = ReflproofRightIdentity (x::xs) with (Monad.proofRightIdentity xs)proofRightIdentity (_::_) | prf = rewrite prf in ReflproofAssociativity Nil f g = ReflproofAssociativity (x::xs) f g with (f x)proofAssociativity (x::xs) f g | Nil = rewrite proofAssociativity xs f g in ReflproofAssociativity (x::xs) f g | (r::rs) = ?holeAssociativity