data EitherC : Type -> (Type -> Type) -> Type -> TyperunEitherC : Syntax sig => Free (EitherC e :+: sig) a -> Free sig (Either e a)throw : Inj (EitherC e) sig => e -> Free sig acatch : Inj (EitherC e) sig => Free sig a -> (e -> Free sig a) -> Free sig aorThrow : Syntax sig => Inj (EitherC e) sig => Maybe a -> Free sig e -> Free sig a