Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BuildList r where
- type Build r
- build' :: [Build r] -> Build r -> r
- instance BuildList [a] where
- type Build [a] = a
- build' l x = reverse $ x:l
- instance BuildList r => BuildList (a-> r) where
- type Build (a -> r) = Build r
- build' l x = \ y -> build'(x:l) y
- -- --build :: forall r a. (BuildList a r) => a -> r
- -- build :: (BuildList a r) => a -> r
- -- build x = build' [] x
- class Mutation m where
- type Ref m :: * -> *
- newRef :: a -> m (Ref m a)
- readRef :: (Ref m a) -> m a
- writeRef :: (Ref m a) -> a -> m ()
- instance Mutation IO where
- type Ref IO = IORef
- newRef = newIORef
- readRef = readIORef
- writeRef = writeIORef
Add Comment
Please, Sign In to add comment