https://github.com/krecursion/github-weekly/blob/master/19-11-W4/CompileTimeMergeSort.hs
좀 더럽긴 한데 코드에
l = undefined :: (() ~ DropList (Sort (Z ::: S (S (S Z)) ::: S Z ::: S (S Z) ::: Nil)) => ())
이라고 되어있는 부분이 [0, 3, 1, 2] 리스트고
Couldn't match type ‘()’
with ‘DCons
(DS (DS (DS DZ)))
(DCons (DS (DS DZ)) (DCons (DS DZ) (DCons DZ DNil)))’
에러 메세지가 [3, 2, 1, 0]으로 정렬된거 보여주는거임
이제 다른 갤럼들이 올려놓은 코드 보러가야지
type family 에 where 구문이 먹는구나 ㅋㅋㅋㅋㅋ 처음 알았네
ㅇㅇ ㅋㅋㅋㅋㅋ 다만 저렇게 하면 closed로 취급돼서 type instance 구문과는 달리 다른 라인에서 확장 정의가 불가능한걸로 알고 있음 - dc App