packages feed

purescript-0.15.15: tests/purs/passing/Sequence.purs

module Main where

import Prelude
import Effect
import Effect.Console (log)

data List a = Cons a (List a) | Nil

class Sequence t where
  sequence :: forall m a. Monad m => t (m a) -> m (t a)

instance sequenceList :: Sequence List where
  sequence Nil = pure Nil
  sequence (Cons x xs) = Cons <$> x <*> sequence xs

main = sequence $ Cons (log "Done") Nil