Source code on Github
{-# OPTIONS --cubical-compatible #-}
module Class.Traversable.Instances where

open import Class.Prelude
open import Class.Functor
open import Class.Applicative
open import Class.Monad
open import Class.Traversable.Core

instance
  TraversableA-Maybe : TraversableA Maybe
  TraversableA-Maybe .sequenceA = λ where
    nothing    nothing 
    (just x)   just x  

  TraversableM-Maybe : Traversable Maybe
  TraversableM-Maybe .sequence = sequenceA

  TraversableA-List : TraversableA List
  TraversableA-List .sequenceA = go where go = λ where
    []         [] 
    (m  ms)   m  go ms 

  TraversableM-List : Traversable List
  TraversableM-List .sequence = sequenceA

  TraversableA-List⁺ : TraversableA List⁺
  TraversableA-List⁺ .sequenceA (m  ms) =  m  sequenceA ms 

  TraversableM-List⁺ : Traversable List⁺
  TraversableM-List⁺ .sequence = sequenceA