Ad
  • Custom User Avatar

    isoEU :: ISO (Either [()] ()) (Either [()] Void) means that, there is a bijection between Either [()] () and Either [()] Void, and you should implement a f :: Either [()] () -> Either [()] Void, and a f' :: Either [()] Void -> Either [()] (), which make

    1. f . f' = id :: Either [()] Void, f' . f = id :: Either [()] ()
    2. f (Right ()) = Left something, f' (Left Something) = Right ()
      hope this would help without spoiling anyone.