Ad
  • Custom User Avatar

    This comment is hidden because it contains spoiler information about the solution

  • Custom User Avatar

    Well, the kata has no random tests, so...

  • Custom User Avatar

    Sample tests puts assumption on how TimeLinesState should be defined. The initial code has signature

    data TimeLinesState s a = TimeLinesState {}
    

    but sample tests can only be run with

    data TimeLinesState s a = TimeLinesState {runTimeLinesState :: ... }
    

    , which this is not specified anywhere, and is basically a fake degree of freedom.

  • Custom User Avatar

    The initial code is a mess. Shouldn't instance Applicative be defined before instance Monad? And the type hints can (and should) go to the initial code instead of the description.

  • Custom User Avatar

    Is the number of channels hardcoded as 2? Or is "multiple" to be taken as "unlimited" ?

    The example where the state type is the same as the output type is less than ideal to clarify this.

  • Custom User Avatar

    Needs actual specs instead of just an example. Again, autor, this is an invitation to read your mind.

  • Custom User Avatar

    Needs actual specs. Examples are nice, but they are an invitation to read author's mind. Please specify how branchTimeLines is supposed to behave.

    get, put, modify, state and gets also need actual specification. You can assume the normal behaviour is known, but their behaviour with multiple timelines is not.