1. ## lib/Monad/Writer.rakumod
  2. use Monad;
  3. unit class Monad::Writer is Monad;
  4. has $.value;
  5. has $.logs = '';
  6. method unwrap {
  7. $.value;
  8. }
  9. method logs {
  10. $.logs;
  11. }
  12. method unit($value --> Monad::Writer) {
  13. self.new(value => $value);
  14. }
  15. ## t/06_writer.t
  16. use Test;
  17. use lib 'lib';
  18. use Monad;
  19. use Monad::Writer;
  20. plan 10;
  21. # unit
  22. my $w1 = Monad::Writer.unit(42);
  23. isa-ok $w1, Monad::Writer, 'unit() returns a Monad::Writer';
  24. is $w1.unwrap, 42, 'unwrap returns correct value';
  25. is $w1.logs, '', 'initial log is empty';