packages feed

purescript-0.7.2.0: examples/passing/TypedWhere.purs

module Main where

import Prelude

data E a b = L a | R b

data L a = C a (L a) | N

lefts :: forall a b. L (E a b) -> L a
lefts = go N
  where
  go :: forall a b. L a -> L (E a b) -> L a
  go ls N = ls
  go ls (C (L a) rest) = go (C a ls) rest
  go ls (C _ rest) = go ls rest

main = Control.Monad.Eff.Console.log "Done"