Skip to content

Instantly share code, notes, and snippets.

@jjant
Created September 9, 2018 17:29
Show Gist options
  • Select an option

  • Save jjant/2af760d90d3d06306977864d05b93629 to your computer and use it in GitHub Desktop.

Select an option

Save jjant/2af760d90d3d06306977864d05b93629 to your computer and use it in GitHub Desktop.
interpret :: b -> (a -> b -> b) -> FreeMonoid a -> b
interpret myZero myCombine Zero = myZero
interpret myZero myCombine (Combine a rest) =
a `myCombine` (interpret myZero myCombine rest) -- a `Combine` (b `Combine` Zero) -> a `myCombine` (b `myCombine` myZero)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment