I am trying to grok get a preliminary understanding of monads.
I have a data layer call whose result I would like to return monadically either as a result e
C# doesn't have much support for monads (and the support that is there in the form of LINQ wasn't really meant for general monads), there are no built-in Exception or Either monads. You should throw the exception and then catch it.
throw
catch