Simplify Basic Relation Monad

Since events require a type-parameter, we could not use
the MakeStateMonad Pattern.

Instead it is much simpler to just implement bind() locally

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>
Simplify trait requirements

Beware, the OCaml typechecker seems to loop sometimes on more complicated
requirements.

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>
Cleanup _tags

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>
Add a validation routine

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>
Fix syntax error

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>
Further implement constrained/monadic implementation of events

Signed-off-by: Christoph Höger <christoph.hoeger@tu-berlin.de>