我知道有两种方法可以将接口规范与Haskell中该接口的实现分开:
类型类,例如:
接口: RandomGen
RandomGen
IMPL: StdGen
StdGen
记录,例如:
接口: Network.Transport
Network.Transport
IMPL: Network.Transport.TCP
Network.Transport.TCP
问题1:什么时候适合使用其中一种?
问题2:在Haskell中分离接口/ impl有哪些其他方法?