.Safe>LA stateful component. Usually you will define an instance of this class to a data type that contains all of its runtime state. #data Example = Example { handle ::  } instance & Example where -- To be defined...Everything necessary to start the component. Typically this is a tuple, but you are free to use whichever data structure you want. If your component does not have any dependencies, use (), the empty tuple. type  Example = (, )Starts the component. This is where you should do things like open file handles, set up connections, and generally acquire resources. If anything goes wrong, just throw an exception, preferrably with .This function should not block forever. If you need to start something that should keep running, like a server, put it on another thread with .  (path, mode) = do h <-  : path mode let component = Example { handle = h }  componentQStops the component. Generally this will do the opposite of whatever you did in w. The default implementation does nothing, which can be enough if you want the garbage collector to handle everything.  component = do   (handle component)   bento_FPqoQ1q3fLm8zzdOJvd7tmBento System.IOHandleIOModeControl.ExceptionthrowIOControl.ConcurrentforkIOopenFilehClose Component DependenciesstartstopbaseGHC.IOFilePathGHC.Basereturn