Skip to content
Avatar
🈚
🈳
🈚
🈳

Highlights

Organizations

@http4s @MYOB-Technology @reactive-react
jcouyang/README.md
type Jichao =
  "working on" --Language.Scala --Language.PureScript <|>
  "find me on"
    -- Social.Twitter["oyanglulu"]
    -- Social.Reddit["oyanglulu"]
    -- Social.Blog["https://blog.oyanglul.us"]
    -- Social.Publication["Grokking Monad", "https://gumroad.com/l/grokking-monad"]
    -- Social.Publication["前端函数式攻城指南", "https://m.douban.com/book/subject/26883736/"]

println(summon[ShowMarkdown[Jichao]].show)
...
trait <|>[HasA, HasB]

trait --[Kind, Type]

enum Language { case Scala(); case Haskell(); case PureScript(); case JavaScript(); case TypeScript(); case Clojure(); case Ruby(); case Python(); }

enum Social { case TwitterName; case BlogUrl; case RedditName; case PublicationName, Url; }

trait ShowMarkdown[A] { def show: String }

import scala.deriving._

given [A, B](using showA: ShowMarkdown[A], showB: ShowMarkdown[B]) as ShowMarkdown[--[A, B]] { def show = showA.show ++ "\n- " ++ showB.show }

given [A, B](using showA: ShowMarkdown[A], showB: ShowMarkdown[B]) as ShowMarkdown[<|>[A, B]] { def show = s"""|## ${showA.show} |## ${showB.show}""".stripMargin }

given [Name <: String](using name: ValueOf[Name]) as ShowMarkdown[Social.Twitter[Name]] { def show = s"Twitter" }

given [Name <: String](using name: ValueOf[Name]) as ShowMarkdown[Social.Reddit[Name]] { def show = s"Reddit" }

given [Url <: String](using name: ValueOf[Url]) as ShowMarkdown[Social.Blog[Url]] { def show = s"Blog" }

given [Name <: String, Url <: String](using name: ValueOf[Name], url: ValueOf[Url]) as ShowMarkdown[Social.Publication[Name, Url]] { def show = s"${name.value}" }

given [R <: Language](using m: Mirror.Of[R], name: ValueOf[m.MirroredLabel]) as ShowMarkdown[R] { def show = name.value }

given [S <: String](using m: ValueOf[S]) as ShowMarkdown[S] { def show: String = m.value }

working on

  • Scala
  • PureScript

find me on

Pinned

  1. 购买 👉 https://gum.co/grokking-monad 在线阅读 👉

    CSS 83 4

  2. Functional Scala Cache

    Scala 32 1

  3. Jichao Ouyang's awesome dotfiles

    JavaScript 178 9

  4. Jichao Ouyang's Blog, generated by orgpress

    JavaScript 43 14

  5. Http4s on Finagle Server or Client

    Scala 9 3

  6. Dhall generic decoder for Scala

    Scala 22

3,328 contributions in the last year

Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct Mon Wed Fri
Activity overview
Contributed to jcouyang/blog, http4s/http4s-finagle, jcouyang/jujiu and 5 other repositories
Loading

Contribution activity

October 2020

261 contributions in private repositories Oct 1 – Oct 22

Seeing something unexpected? Take a look at the GitHub profile guide.

You can’t perform that action at this time.