úÎ}Ì  0View type for inspecting the first instruction. The abstract data type  instr m a represents programs.  The type constructor instr :: * -> *% indexes the primitive instructions.  m" is the base monad, embedded with  .  a" is the return type of a program.  instr m is a monad transformer and < automatically obey both the monad and the lifting laws. 0View type for inspecting the first instruction.  It has two constructors  and :>>=. 2 (For technical reasons, they are documented at .) The abstract data type 'Program instr a' represents programs.  The type constructor instr :: * -> *% indexes the primitive instructions.  a" is the return type of a program.  instr is always a monad and ( automatically obeys the monad laws. 4View function for inspecting the first instruction. 2Program made from a single primitive instruction. 4View function for inspecting the first instruction.      operational-0.1.0.0Control.Monad.OperationalPromptT:>>=ReturnProgramTPromptProgramview singletonviewT mtl-1.1.1.0Control.Monad.TransliftInstrBindLift